我有一个UIButton
我将其添加到故事板中的视图控制器的视图中。我添加居中约束来定位它,并添加前导空间约束来限制其宽度。在代码中我添加:
self.button.titleLabel.numberOfLines = 0;
self.button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
[self.button setTitle:@"A real real real real real real real real long long name." forState:UIControlStateNormal];
self.button.backgroundColor = [UIColor redColor];
self.button.titleLabel.backgroundColor = [UIColor blueColor];
结果如下所示:
我希望按钮的大小适合其内容。我怎样才能做到这一点?
我试过了
[self.button sizeToFit];
我尝试将内容拥抱和压缩阻力自动布局约束优先级设置为所需的。
我也尝试过明确设置contentEdgeInsets
and titleEdgeInsets
to UIEdgeInsetsZero
并打电话invalidateIntrinsicContentSize
.
我还注意到,如果我在标题字符串中放置换行符,按钮似乎会调整大小以适合其内容。
我在 iPhone 6 模拟器上运行 Xcode 6 和 iOS 8。
斯威夫特 4.x的版本Kubba's https://stackoverflow.com/users/1495682/kubba answer:
需要更新越线 as 剪辑/自动换行/在界面构建器中添加到相应的按钮。
class ResizableButton: UIButton {
override var intrinsicContentSize: CGSize {
let labelSize = titleLabel?.sizeThatFits(CGSize(width: frame.width, height: .greatestFiniteMagnitude)) ?? .zero
let desiredButtonSize = CGSize(width: labelSize.width + titleEdgeInsets.left + titleEdgeInsets.right, height: labelSize.height + titleEdgeInsets.top + titleEdgeInsets.bottom)
return desiredButtonSize
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)