如何在界面生成器中设置自动布局来垂直排列视图,如图所示: Top view固定到顶部屏幕边缘, Bottom view固定到底部屏幕边缘。 My view应该集中在顶部和底部视图之间(所以到Top view距离等于Bottom view距离)
在Interface Builder中,我的布局约束没有问题,但在运行时发生exception,这要归功于框架的某些部分应用固定的高度和宽度约束,我真的不想要。 他们为什么在那里,如何把他们closures? 它们是日志列表中显示的最后两个约束: 2014-04-26 09:02:58.687 BBCNews[32058:60b] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints […]
我正在为iOS开发一个应用程序,并使用AutoLayout ON的Storyboard。 我的一个视图控制器有一组4个button,在某些情况下,我想使第一个button消失。 如果我使用setHidden:TRUE方法,那么UIButton变得不可见,但显然在视图中占用空间,结果是一个“洞”,我无法填充使剩余的UIButton浮动到顶部主视图。 在Android中,我只是简单地使用View.GONE而不是View.INVISIBLE ,但在iOS中我坚持这种行为,我不想相信唯一的解决办法是手动(是的,我的意思是编程)移动剩余元素顶部。 我以为自己能够做到这一点,设置一些约束,使所有东西都像Android一样自动化,但是我没有运气。 在我closuresAutolayout之前,有人能指点我的方向吗? 我正在使用IB,但是我也对程序化的东西感到满意。 更新: 将组件高度设置为0也没有帮助。 我尝试了这样的事情: UIButton *b; CGRect frameRect = b.frame; frameRect.size.height = 0; b.frame = frameRect;
iOS 8新增function,您只需设置估计的行高即可获得100%的dynamic表格视图单元格,然后使用“自动布局”在单元格中布局元素。 如果内容的高度增加,细胞也会增加高度。 这是非常有用的,我想知道是否可以在表视图中的节标题完成相同的壮举? 例如,可以在tableView:viewForHeaderInSection:创buildUIView tableView:viewForHeaderInSection:添加一个UILabel子视图,为视图指定标签的自动布局约束,并使视图的高度适合标签的内容,而不必实现tableView:heightForHeaderInSection: viewForHeaderInSection的文档声明:“只有当tableView:heightForHeaderInSection:也被实现时,这个方法才能正常工作。 我还没有听说iOS 8有什么变化。 如果一个人不能这样做,模仿这种行为的最好方法是什么?
下面的问题是这个问题的继续: iOS:自动布局中的多行UILabel 主要思想是每个视图都应该声明它是“首选”(内在)大小,以便AutoLayout可以知道如何正确显示它。 UILabel只是一个视图本身无法知道需要显示的大小的情况的例子。 这取决于提供的宽度。 正如mwhuss所指出的那样, setPreferredMaxLayoutWidth做了使标签跨越多行的技巧。 但这不是这里的主要问题。 问题是我何时何地得到这个宽度值,我发送作为参数setPreferredMaxLayoutWidth 。 我设法做出一些看起来合法的东西,所以如果我错了,请纠正我,如果你知道更好的方法,请告诉我。 在UIView的 -(CGSize) intrinsicContentSize 我为我的UILabels根据self.frame.width setPreferredMaxLayoutWidth 。 UIViewController的 -(void) viewDidLayoutSubviews 是我知道的第一个callback方法,主视图的子视图是用屏幕上居住的精确帧来指定的。 从那个方法里面,我操作我的子视图,使它们的内在大小失效,以便UILabel根据指定给它们的宽度分成多行。
所以我在Storyboard中并排了两个UILabel。 第二个标签应该与第一个标签的右边缘alignment(拖尾限制为1),但是我也需要第一个标签(左边的标签)将它的宽度设置为与内容大小相等,除非它达到最大宽度。 视觉: |标签一个文本| |标签两个文本| 我需要以下约束: 1)标签应该调整宽度明智,除非它达到最大尺寸。 2)标签2应该总是贴在标签1的右边 如何在Storyboard中设置?
我在我的应用程序中第一次使用故事板 当我closuresXcode时,我有0个关于错误的视图或关于我的故事板的任何警告。 当我重新启动Xcode并打开故事板时,我的15个场景中有3个出现错误的视图警告。 不用触摸任何东西(除了select文件),我可以发出一个git status ,看到.storyboard文件有变化。 如果我git diff ,我看到这个包含在文件的多个区域: <variation key="widthClass=compact" misplaced="YES"> <rect key="frame" x="8" y="56" width="130" height="34"/> </variation> 如果一个元素已经有<variation key="widthClass=Compact"节点,那么添加misplaced属性和rect节点。 要让警告消失,唯一的办法是点击每一个,确保select“更新框架”,然后点击“修复错位”。 这修复了一切,直到我重新启动Xcode。 我的场景的基本结构是: UIView UICollectionView UICollectionReusableView UICollectionViewCell UICollectionViewCell UISegmentedControl 我怎样才能防止这种情况发生,每次我重新启动?
我想弄清楚如何做到这一点与自动布局(iOS6)和约束。 基本上我把我的大视野分为两部分。 里面的部分(目前子视图)我有一个图像视图和标签。 我想以两边为中心,用可变长度的文本。 我的头大部分是围绕自动布局,但我不确定最好的办法。 我倾向于认为这是不可能在IB,但在代码。 继续尝试弄清楚这一点,但在此期间,我正在试图创build这个例子。
我看到设置约束的不同示例。 有些将它们设置在viewDidLoad / loadView (添加子视图之后)。 其他人在方法updateViewConstraints设置它们,它被viewDidAppear调用。 当我尝试在updateViewContraints设置约束时,可能会出现布局跳动,例如视图出现之前的轻微延迟。 另外,如果我使用这种方法,我应该先清除现有的约束,即[self.view [removeConstraints:self.view.constraints] ?
什么会导致下面的警告(和iOS 7的后续alignment问题)? 属性不可用:在8.0版本以前的iOS版本中布局相对于版面边距的属性