如何不在UIButton中拉伸图像
我试图以编程方式创build一个自定义的UITableViewCell,这个单元格的其中一个子视图将会是一个带有图像的button(一个放大镜的简单图像)。 但是,我希望button的图像居中并按比例缩小以适应button,而不是被拉伸以填充整个button。 下面是我的代码,其中self是指我将button放入的自定义UITableViewCell。
self.myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [self.myButton setBackgroundImage:[UIImage imageNamed: @image_name_here"] forState:UIControlStateNormal]; self.myButton.frame = CGRectMake(...//something, something) self.myButton.imageView.contentMode = UIViewContentModeCenter; [self.contentView addSubview:self.mySearchHelpButton];
现在图像延伸填充整个button,而不是比例缩放,以便它很好地适合。
我也尝试将contentMode设置为UIViewContentModeScaleAspectFill
但这似乎并没有改变任何东西。 事实上,不同的内容模式似乎没有改变任何东西。
你有没有尝试setImage
而不是setBackgroundImage
?
确保button是一个自定义UIButton
只使用setImage:
在iOS9上不适用于我。
但它与myButton.imageView.contentMode = UIViewContentMode.ScaleAspectFit;
在Swift中…
button.imageView?.contentMode = .aspectFit
故事板
您必须在Identity inspector的 运行时属性中定义特定属性 – rawValue
,其中您将值设置为相对于enum UIViewContentMode
rawValue
位置。 1表示scaleAspectFit 。
和button的alignment,在属性检查器 :
Swift版本
myButton.imageView!.contentMode = UIViewContentMode.scaleAspectFit