Dav*_*dNg 66 uisegmentedcontrol ios
我正在尝试更改UISegmentedcontrol的高度,但在Interface Builder中不允许这样做.有没有办法改变或者不可能?
谢谢
Luk*_*uke 83
是的,您可以[mySegmentedControl setFrame:frame]在代码中使用.不幸的是,你无法在IB中做到这一点.
所以,如果你只是想改变高度:
CGRect frame= mySegmentedControl.frame;
[mySegmentedControl setFrame:CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, fNewHeight)];
Run Code Online (Sandbox Code Playgroud)
jbu*_*s20 12
如果您使用自动布局并且无法解决Luke的问题,那么这对我来说非常有用:
NSLayoutConstraint *constraint = [NSLayoutConstraint constraintWithItem:mySegmentedControl
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1
constant:fNewHeight];
[mySegmentedControl addConstraint:constraint];
Run Code Online (Sandbox Code Playgroud)
Swift 3 IBInspectable解决方案:
@IBDesignable class MySegmentedControl: UISegmentedControl {
@IBInspectable var height: CGFloat = 29 {
didSet {
let centerSave = center
frame = CGRect(x: frame.minX, y: frame.minY, width: frame.width, height: height)
center = centerSave
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48609 次 |
| 最近记录: |