带约束的iOS自定义UIControl,UITextView:无法同时满足约束
我创建了一个自定义的带约束的iOS自定义UIControl,UITextView:无法同时满足约束,ios,constraints,nslayoutconstraint,Ios,Constraints,Nslayoutconstraint,我创建了一个自定义的UITextView,它可以进行一些语法高亮显示,而且效果非常好。当我创建一个常规的UITextView并添加约束时,我没有收到任何错误或警告。当我使用自定义的UITextView(它继承自UITextView)时,会收到各种各样的约束警告,表明它无法满足我添加的约束。例如: ( "<NSLayoutConstraint:0x7b9c8750 MyApp.MyCodeAppTextView:0x7c280200.width == UIView:0x7bc621c
UITextView
,它可以进行一些语法高亮显示,而且效果非常好。当我创建一个常规的UITextView
并添加约束时,我没有收到任何错误或警告。当我使用自定义的UITextView
(它继承自UITextView
)时,会收到各种各样的约束警告,表明它无法满足我添加的约束。例如:
(
"<NSLayoutConstraint:0x7b9c8750 MyApp.MyCodeAppTextView:0x7c280200.width == UIView:0x7bc621c0.width>",
"<NSAutoresizingMaskLayoutConstraint:0x7bc68be0 h=--& v=--& H:[MyApp.MyCodeAppTextView:0x7c280200(0)]>",
"<NSLayoutConstraint:0x7bc6a720 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7bc621c0(320)]>"
)
(
"",
"",
""
)
有什么我必须添加到我的自定义UIControl/UITextView以便它能够正确响应约束吗?显然,您需要将这三样东西放在您的自定义类中
setTranslatesAutoresizingMaskIntoConstraints(false)
intrinsicContentSize
requiresConstraintBasedLayout
import UIKit
public class YourCustomUIControl:UIView {
required public init(coder aDecoder: NSCoder) {
super.init()
setTranslatesAutoresizingMaskIntoConstraints(false)
}
override public func intrinsicContentSize() -> CGSize {
return CGSizeMake(100, 70)
}
override class public func requiresConstraintBasedLayout() -> Bool {
return true
}
}