我有一个UIButton的自定义子类,我想在多个项目中重用,其中一些使用界面生成器和故事板,其中一些可能不会。它涉及在几个地方设置按钮的框架。支持AutoLayout和传统布局
如果我在初始化添加
self.translatesAutoresizingMaskIntoConstraints = YES;
,一切看起来和作品的权利,但是,我得到:
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 and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
Will attempt to recover by breaking constraint…etc
登录到控制台。但是,如果我设置
self.translatesAutoresizingMaskIntoConstraints = NO;
没有按钮大小作品和按钮被彻底打破。
有没有办法阻止错误,因为它似乎降级到正确的东西,或者我可以以某种方式手动删除违规约束?
我已经试过按钮初始化后倾倒约束,但是,它似乎并没有包含约束AutoLayout最终打破。
编辑:下面是一个示例项目,然后我的按钮代码的链接。它在自动布局在故事板中关闭时效果很好,但是,当自动布局打开时,按钮似乎位于原点(似乎是因为当调用initWithCoder时,按钮没有超级视图或任何位置信息)。
http://www.kudit.com/dump/KFB.zip
http://www.kudit.com/dump/KuditConfirmButton.zip
我还没有找到一种方法来做到这一点,而不是手动设置'翻译...'属性取决于使用的布局的类型。你如何添加你的按钮 - 作为xib/storyboard或代码中的一部分? – jrturton 2013-04-04 06:29:29
作为故事板的一部分。我想设计这个类,以便我可以在IB中替换类,并使用IB和运行时属性进行自定义,以制作简单的可重用的插入式解决方案。 – Gujamin 2013-04-04 15:27:48
你可以编辑问题来显示你的一些代码吗?特别是任何你创建约束的代码。我假设你在按钮内部创建约束?您可以在非自动布局视图内放置自动布局视图,反之亦然,但如果尝试限制自动视图视图,则会出现问题。从现在的情况来看,从你的问题来看你不清楚你正在做什么。 – jrturton 2013-04-04 16:05:51