Log*_*Rex 3 objective-c ios autolayout
我有一个popover控制器我在代码中实例化并传递它的contentViewController,所有这一切都很好.当contentViewController可能因为messages标签显示任意长的字符串列表而调整大小时,问题就是LATER.
我所指的UILabel有文本......'验证和错误消息框'
我希望能够以某种方式配置布局约束,以便当用户在文本框中输入值,然后点击接受按钮时,如果我有任何验证错误呈现给他们,我可以通过添加它们到标签(我已设置为接受多行数据,如果需要),并且当添加时,如果它们恰好需要5行显示,那么标签将按下UITextField和Accept/Cancel按钮,它可以显示所有标签内容.好吧,我已经能够做到这一点,并且contentViewController按预期调整大小.问题是,包含它的弹出控制器没有调整大小,所以会发生什么,我的接受/取消按钮被推离弹出窗体的底部边缘,因此用户甚至无法访问它们.
是否有任何限制我可以设置强制弹出控制器的高度放大,以便当有多行验证文本时,我的'验证和错误消息框'下的UI控件不会被推离底边?
我在代码中创建popoverController,所以我假设我还需要在代码中执行约束.

这是我如何解决它,它没有使用约束.我可能找到的关于使用AutoLayout和约束的所有内容都没有有用的约束解决方案.
当我创建弹出窗口时,在显示它之前,我使用此代码...
CGSize newSize = [theContentViewController.view systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
CGRect newFrame = CGRectMake(0, 0, newSize.width, newSize.height);
[theContentViewController.view setFrame:newFrame];
[thePopover setPopoverContentSize:theContentViewController.view.frame.size animated:YES];
Run Code Online (Sandbox Code Playgroud)
然后,在用户按下Accept按钮后,在contentViewController中,我评估他们的输入是否可接受,并用任何消息更新标签,然后我调用上面相同的代码,这将动画为新的大小以适应一条大信息或其他什么.
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |