UIButton 自动布局大小设置

UIButton Autolayout size setting

我在视图中放置了一个 UIButton 控件,按钮中设置了一个大背景图像,假设图像的大小为 600 x 300,按钮的大小为 100 X 40,现在我想要添加约束以限制按钮的宽度 >= 100 和 <= 200 取决于标题宽度。

问题是按钮宽度总是拉伸到 200 而不是实际的标题宽度,因为背景图像比 200 像素太大。但我想要的是让宽度适合标题而不是背景图片。

我曾尝试使用 setContentHuggingPriority 和 setContentCompressionResistancePriority 降低按钮图像视图在水平方向上的优先级,但不幸的是它不起作用。请帮忙!!!

您应该为按钮的宽度约束创建一个 IBOutlet,然后您可以这样说:

self.buttonWidthConstraint.constant = button.titleLabel?.sizeThatFits(button.frame.size).width

或者如果您在 objective-c 中需要它:

self.buttonWidthConstraint.constant = [self.button.titleLabel sizeThatFits:self.button.frame.size].width;