繁体   English   中英

如果以编程方式或与Interface Builder一起添加,则UIView的行为将有所不同

[英]UIView behaving differently if added programmatically or with Interface Builder

我正在考虑是要以编程方式将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)

但是,最终结果略有不同。 与以编程方式创建的UIView相比,“界面”构建器的UIView似乎处于不同的位置。 我认为这并不重要,但是我正在使用此预制类修改UIView。

谢谢您的帮助!


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

在此处输入图片说明

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

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

因此,您将获得普通的UIView-而不是BTGlassScrollView。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM