【问题标题】:UIView behaving differently if added programmatically or with Interface Builder如果以编程方式或使用 Interface Builder 添加 UIView 的行为会有所不同
【发布时间】:2014-04-22 19:53:04
【问题描述】:

我正在考虑是以编程方式将 UI 元素添加到我的应用程序还是使用 Xcode 的 Storyboard。我注意到在这两种情况下,UIView 在最终应用程序中的显示方式有所不同。

这是我以编程方式添加的代码

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 705)];
// use the view (including adding subviews programmatically)

如果我通过界面生成器添加它,这是尺寸检查器选项卡:

我创建了一个出口连接(调用 UIView“myView”)并以这种方式仅修改我在上面发布的代码行:

UIView *view = self.myView;
// use the view (including adding subviews programmatically)

但是,最终结果略有不同。 Interface builder 的 UIView 似乎与以编程方式创建的 UIView 处于不同的位置。我认为这并不重要,但我正在使用 this pre-made class 修改 UIView。

感谢您的帮助!


这是我得到的不同结果(背景是随机生成的,所以不要介意它们是否不同)。 UIView 似乎处于不同的位置。标签和框以编程方式生成并作为子视图添加。

【问题讨论】:

  • 你能显示“略有不同的结果”吗?
  • 可能是由于自动布局。
  • 感谢您的回答!我添加了一些截图
  • 我现在会尝试设置一些限制 - 我会告诉你的。
  • 自动布局搞砸了。我添加了一些约束,它现在显示没有问题。谢谢大家的帮助:)

标签: ios iphone objective-c xcode uiview


【解决方案1】:

您说您正在使用“这个预制类”,即 BTGlassScrollView。但是在您的代码中,您是在说:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 705)];

所以你得到的是一个普通的 UIView - 而不是 BTGlassScrollView。

【讨论】:

  • 我正在使用这个 UIView 实例并通过该自定义类放入一个自定义 ScrollView。
【解决方案2】:

自动布局搞砸了。我添加了一些约束,它现在显示没有问题。谢谢大家的帮助:)

【讨论】:

    猜你喜欢
    • 2010-10-14
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多