与其设置contentMode
按钮本身,不如设置contentHorizontalAlignment
和设置contentVerticalAlignment
属性,并(关键)contentMode
设置按钮的,imageView
以填充或适配任何类型的外观。这是一个例子:
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
button.imageView.contentMode = UIViewContentModeScaleAspectFit;
当然,您还可以执行其他操作,例如将按钮的图像对准按钮的顶部。如果您不需要长宽比填充或适合,则可以自己设置对齐方式:
button.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
在Swift中,您需要使用:
button.contentHorizontalAlignment = .fill
button.contentVerticalAlignment = .fill
button.imageView?.contentMode = .scaleAspectFit
此功能适用于所有版本的iOS,包括具有自动版式的最新版本(例如,iOS 4至iOS 11+)。