iOS 使用interface builder 创建太复杂的constrains时容易产生crash

今天写程序,遇到了crash,在界面初始化时不会有,想切换到别的tab页就报错了。主要内容如下:

Cannot find an outgoing row head for incoming head
UIImageView:0x156caec0.Width{id: 103}, which should never happen.

查了一晚上也没有查出真正原因,最后从xib中删除了2个view,系统正常了。我想,大概使用了过多的不确定constraint,这些constraint对于人脑来说是可以理解的,但是对于机器来说不确定性比较多,当系统要求快速反应时,可能就会产生问题。这种bug只能用排除法一点点试验了。也许这还是xcode的bug呢。。。

另外,说一个关于建立constraint的问题。

下面的button的位置是固定的,我想利用button的位置计算出Label的下边位置,于是我选中label,如图添加了constraint,但是添加后的效果下图:

创建的constraint等式是反的,但是这里仅仅是创建一个关系,所以是没问题的!不要以为这里出错了。

iOS 使用interface builder 创建太复杂的constrains时容易产生crash

时间: 2024-10-12 21:04:43

iOS 使用interface builder 创建太复杂的constrains时容易产生crash的相关文章

[转]使用 Xcode 5 和 Interface Builder创建 Hello World App

转载地址:http://www.ithome.me/archives/581.html 使用 Xcode 5 和 Interface Builder创建 Hello World App 发表回复 当xcode 5发布后,相比之前的版本变化很大,大家可能会有一些疑问: 我跟随教程学习但是发现程序在 Xcode 5 中不再受支持. Interface Builder在哪儿? 我如何去创建一个XIB 文件? 这样的例子不胜枚举. Xcode 5 推荐使用Storyboard 而不是 Interface

IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题)

很多时候,我们自定义tableview.collectionview的cell,也有时候我们要自定义窗口xib,但创建xib后,其height.width不可修改. 这时问题就来了,怎么才能使我们的自定义xib宽高可修改: 项目中创建xib,单独的view时, 方法: 默认Simulated metric中Size:inferred(推断),则view的height.width不可改变: 修改为Size:Freeform,现在我们的xib view 宽高可修改了. 学习并转载:http://ip

iOS开发-Interface Builder的前世今生

Interface Builder,是用于苹果公司Mac OS X操作系统的软件开发程序,Xcode套件的一部分,于1988年创立.它的创造者Jean-Marie Hullot自称是“一个热爱旅行.充满激情的摄影师”,本篇分享Hullot热爱技术的那一面——创造Interface Builder的过程. 因势而动 1981年, Jean-Marie Hullot拿到巴黎第十一大学的计算机科学博士资格后,开始了法国国家信息与自动化研究所(INRIA)的研究生活. Jean-Marie Hullot

【iOS】Interface Builder 预览

Interface Builder 为最顶层视图提供了 Simulated Metrics,预览用户界面的各种外观设置效果,例如顶部有导航栏或底部有标签栏的效果,如图所示:

iOS 获取Interface Builder上的子控制器的两种方式

原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 准备工作 Storyboard上为一个ViewController拖拽两个子控制器,并且设置两个segue的identifier分别为childvc1,childvc2 效果 方式一,根据segue的identifier来判断获得 #import "ViewController.h" #import "ChildViewController1.h" #import "ChildV

提高Interface Builder高效工作的8个技巧

本文转载至 http://www.cocoachina.com/ios/20141106/10151.html iOS开发Interface Builder 本文译自:8 Tips for working effectively with Interface Builder(需FQ) 先来看看目录: 介绍 使view的Size与view中的Content相适应 按住option键—观察所选中view与另外view边缘之间的距离 Editor –> Embed In View, Unembed:

【iOS开发】视图控制器加载和卸载时的几个函数

1.-(void)loadView 你应该永远不要直接调用这个函数.当视图控制器的view属性被请求但是其值为nil时,该函数将会被调用.该函数加载或创建一个视图并把它分配给view属性. 如果视图控制器有一个与之相关联的nib文件,这个方法将会从nib文件中加载视图.当视图控制器的nibName属性的值不是nil时,就说明视图控制器有一个与之相关联的nib文件.如果你直接用initWithNibName:bundle:函数给视图控制器分配一个nib文件或者如果ios发现再应用程序中有一个以视图

【转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

原文网址:http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式的前世今生.本篇文章将详细介绍如何使用自动布局实现不同屏幕尺寸的适配. 添加自动布局约束(下文简称约束)有以下三种方式: 使用Xcode的Interface Builder界面设计器添加并设置约束 通过代码逐条添加约束 通过可视化格式语言VFL添加约束 本文将以一个简单的例子来演示如何使用这几种方式添加约束,

iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束

http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式的前世今生.本篇文章将详细介绍如何使用自动布局实现不同屏幕尺寸的适配. 添加自动布局约束(下文简称约束)有以下三种方式: 使用Xcode的Interface Builder界面设计器添加并设置约束 通过代码逐条添加约束 通过可视化格式语言VFL添加约束 本文将以一个简单的例子来演示如何使用这几种方式添加约束,如下图所示