Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make a fixed size UIView, like UISwitch (using IBDesignable)

When I'm using this guide to create a view that is designed in a XIB, reusable from within a storyboard using the IBDesignable attribute on my UIView subclass, how do I make it have a fixed size, and have its resizing behavior match that of a view like UISwitch?

With "resizing behavior" I also mean while designing in interface builder.

like image 955
pancake Avatar asked Feb 18 '15 20:02

pancake


1 Answers

You could override intrinsicContentSize() in your UIView subclass. Then you won't need to supply height and width constraints in the interface builder.

override var intrinsicContentSize: CGSize {
    return CGSizeMake(width: 100, height: 100)
}

If you only want to supply one of the dimensions, you can use UIView.noIntrinsicMetric instead of a value.

override var intrinsicContentSize: CGSize {
    return CGSizeMake(width: UIView.noIntrinsicMetric, height: 100)
}
like image 199
Smongo Avatar answered Oct 09 '22 22:10

Smongo