【发布时间】:2017-11-06 00:13:17
【问题描述】:
我有一个不使用情节提要的旧版应用程序。一切都以编程方式添加和配置。我调整了一个 UIButton 约束,使其位于 iPhone X 屏幕的底部。我注意到该按钮不再响应触摸事件,一旦我将视图背景颜色设置为黄色,我注意到该按钮超出了视图的范围它属于。
我已经尝试了几件事来扩展视图以填充屏幕,但似乎没有任何效果。我设置了视图高度,将内容模式设置为 Aspect Fill 和 Scale to Fill 没有运气。
[self.view setBackgroundColor:[UIColor yellowColor]];
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];
我尝试将视图的框架设置为主屏幕的边界。那没用。
CGRect frame = [[UIScreen mainScreen] bounds];
self.view.frame = frame;
我尝试为主视图设置高度限制,但没有奏效。我不确定我是否正确地这样做了。
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:812]];
谁能告诉我我做错了什么?
【问题讨论】:
-
我怀疑它与安全区域有关。还可以用故事板更好地重做你的应用程序。
-
您是否尝试过针对安全区域设置约束?
-
您的视图似乎没有获得框架。在 viewDidAppear 中设置视图的框架并在 didLayoutSubviews 中更改约束。
-
我尝试在 viewDidAppear 中设置框架,但没有成功。我还没有尝试更改 didLayoutSubviews 中的约束。我会试一试。
-
100% 不同意用故事板重做..
标签: ios objective-c ios11 nslayoutconstraint iphone-x