草庐IT

AutoLayout

全部标签

ios - iOS 8 的自动布局问题,代码在 iOS 7 上运行良好

我正在为iPhone和iPad开发应用程序。它支持iOS6和iOS7,并且专门使用自动布局。上周,当Apple宣布iOS8准备好迎接黄金时段时,我将我的一部iPhone和一部iPad都升级到了iOS8。我还将我的XCODE升级到版本6。我有第二部iPhone,我留在iOS7。我使用Xcode6生成了新的可执行文件,当我在运行iOS8的设备上执行时,看到它们的屏幕布局一团糟,但在iOS7上仍然正常,我感到很沮丧。在我的物理设备和Xcode的模拟器上都是如此。这需要大量的挖掘,但我现在很清楚发生了什么,尽管我不知道为什么。具体来说,某些自动布局操作在iOS8上对我来说失败了,但在iOS7上

ios - UIStackView - 从中​​心均匀分布 View

我有一个UIStackView,在一个UIScrollView内,用于显示水平排列的动态添加的subview。当前的解决方案将从左侧开始显示项目,我想在不改变subview的宽度和高度的情况下从中心开始分配项目。我怎么做?我也对不使用UIStackView的解决方案持开放态度。这样我就可以支持设备(当前)(预期) 最佳答案 简答:ScrollView约束Leading>=0,Trailing>=0,Top>=0,Bottom>=0CenterXandCenterYStackView约束Leading=0,Trailing=0,Top

ios - UIStackView - 从中​​心均匀分布 View

我有一个UIStackView,在一个UIScrollView内,用于显示水平排列的动态添加的subview。当前的解决方案将从左侧开始显示项目,我想在不改变subview的宽度和高度的情况下从中心开始分配项目。我怎么做?我也对不使用UIStackView的解决方案持开放态度。这样我就可以支持设备(当前)(预期) 最佳答案 简答:ScrollView约束Leading>=0,Trailing>=0,Top>=0,Bottom>=0CenterXandCenterYStackView约束Leading=0,Trailing=0,Top

ios - 使用自动布局时 UITableView 内容大小

我想计算我的UITableView的内容大小。我正在使用高度为UITableViewAutomaticDimension的自动布局。尝试在重新加载tableview后获取[UITableViewcontentsize],在这种情况下,高度是根据estimatedRowHeight计算的。self.tableView.estimatedRowHeight=50;self.tableView.rowHeight=UITableViewAutomaticDimension;委托(delegate)--(CGFloat)tableView:(UITableView*)tableViewheig

ios - 使用自动布局时 UITableView 内容大小

我想计算我的UITableView的内容大小。我正在使用高度为UITableViewAutomaticDimension的自动布局。尝试在重新加载tableview后获取[UITableViewcontentsize],在这种情况下,高度是根据estimatedRowHeight计算的。self.tableView.estimatedRowHeight=50;self.tableView.rowHeight=UITableViewAutomaticDimension;委托(delegate)--(CGFloat)tableView:(UITableView*)tableViewheig

ios - 在自动布局中,无论方向如何,如何让 View 占据屏幕的一半?

在纵向模式下,我在左侧有一个tableview,在右侧有一个webview。他们都占据了屏幕的一半。我启用了自动布局。但是当我将屏幕旋转到横向模式时,tableview的宽度占不到屏幕尺寸的一半,而webview最终占据更多,而不是平均分割。为什么会这样?无论屏幕方向如何,我如何才能让View的宽度只占据屏幕的一半? 最佳答案 答案的前半部分解决了我们想要在ViewA(蓝色)和ViewB(红色)之间平均分割View的情况。下半部分将解决我们希望ViewA占据半个屏幕但ViewB不存在的情况。第1步:如图所示设置蓝色的自动布局约束。0

ios - 在自动布局中,无论方向如何,如何让 View 占据屏幕的一半?

在纵向模式下,我在左侧有一个tableview,在右侧有一个webview。他们都占据了屏幕的一半。我启用了自动布局。但是当我将屏幕旋转到横向模式时,tableview的宽度占不到屏幕尺寸的一半,而webview最终占据更多,而不是平均分割。为什么会这样?无论屏幕方向如何,我如何才能让View的宽度只占据屏幕的一半? 最佳答案 答案的前半部分解决了我们想要在ViewA(蓝色)和ViewB(红色)之间平均分割View的情况。下半部分将解决我们希望ViewA占据半个屏幕但ViewB不存在的情况。第1步:如图所示设置蓝色的自动布局约束。0

ios - 使用 AutoLayout 约束隐藏 UIView

有时我想从布局中删除一个subview。它不仅应该被隐藏,而且不应该被认为是View“流”的一部分,可以这么说。一个例子:我正在寻找一种以编程方式隐藏橙色View的策略。盒子的布局及其内容是通过自动布局实现的。需要注意两点:橙色框根据内容定义其垂直高度,外加一些顶部/底部边距偏移量。因此,将标签的文本设置为nil只会将View“缩小”到它的内部边距,高度不会为0。同样,三个框之间的垂直间距意味着即使橙色框的高度为0,红色和黄色之间的间距也会是所需的两倍。可能的解决方案我最好的建议是向橙色框添加一个约束,将其高度设置为0。为此,我需要对橙色框内的所有垂直约束使用非必需的优先级。同时,容器

ios - 使用 AutoLayout 约束隐藏 UIView

有时我想从布局中删除一个subview。它不仅应该被隐藏,而且不应该被认为是View“流”的一部分,可以这么说。一个例子:我正在寻找一种以编程方式隐藏橙色View的策略。盒子的布局及其内容是通过自动布局实现的。需要注意两点:橙色框根据内容定义其垂直高度,外加一些顶部/底部边距偏移量。因此,将标签的文本设置为nil只会将View“缩小”到它的内部边距,高度不会为0。同样,三个框之间的垂直间距意味着即使橙色框的高度为0,红色和黄色之间的间距也会是所需的两倍。可能的解决方案我最好的建议是向橙色框添加一个约束,将其高度设置为0。为此,我需要对橙色框内的所有垂直约束使用非必需的优先级。同时,容器

ios - 使用自动布局将自定义 UIView 垂直和水平居中

我正在尝试使用新推出的iOS6自动布局API构建一个相当简单的动画自定义UI。我正在构建的自定义View有一个圆圈,我希望它在垂直和水平方向上都居中。不幸的是,我无法弄清楚为什么我的约束对于UIButton和UILabel元素似乎工作正常,但是当我将自定义View与自定义CALayer一起使用时会产生奇怪的结果(在本例中是一个圆圈,最终将被动画化).需要明确的是,我不希望我的View扩展到填满整个屏幕,而是要有动态“填充”,以便View在iPhone4和5上都垂直居中。我还应该注意我我对Cocoa和UIKit很陌生。RootViewController.m:...-(void)view