gpt4 book ai didi

ios - 如何限制从顶部定位我的标签,但在我隐藏导航栏时不让它移动(因为它调整 View 高度)?

转载 作者:行者123 更新时间:2023-11-29 10:56:34 27 4
gpt4 key购买 nike

长话短说,我想定位我的 UILabel,使其距离屏幕顶部 150pt。这使得它与 4"iOS 设备或 3.5"iOS 设备的顶部保持良好的距离。

但是,一旦我使用 [self.navigationController setNavigationBarHidden:YES animated:NO]; 导航栏就会隐藏,这会导致 View 调整大小并变高。这会导致我的 UILabel 向上跳,这是我不希望它做的。这是用户想要进入全屏 View 的时候,在这种情况下,事情不应该四处跳跃。

现在您可能会说,从 View 的底部进行约束。这在理论上可行,但它会导致 UILabel 在 iPhone 5 的屏幕下方太远。我可以对该值进行硬编码,但这似乎不符合自动布局的精神。

基本上,一个完美的解决方案是能够将约束设置到屏幕 而不是 View 的顶部。这样的事情可能吗?如果没有,我最好怎么做?

最佳答案

将 IBOutlet 设置为顶部约束(在我的示例中将其称为 topCon),并在隐藏或取消隐藏时从约束常量中添加或减去条的高度。

- (IBAction)hideNavBar:(UIButton *)sender {
self.navigationController.navigationBarHidden = !self.navigationController.navigationBarHidden;
if (self.navigationController.navigationBarHidden) {
self.topCon.constant = self.topCon.constant + self.navigationController.navigationBar.frame.size.height;
}else{
self.topCon.constant = self.topCon.constant - self.navigationController.navigationBar.frame.size.height;
}
}

这将在导航栏具有不同高度的纵向和横向模式下正常工作。

关于ios - 如何限制从顶部定位我的标签,但在我隐藏导航栏时不让它移动(因为它调整 View 高度)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006927/

27 4 0