Dan*_*Ray 89 uibutton contentmode ios
firstButton是Custom类型的UIButton.我以编程方式将三个放在一个表的每个单元格中,因此:
[firstButton setImage:markImage forState:UIControlStateNormal];
[firstButton setContentMode:UIViewContentModeScaleAspectFit];
[cell.contentView addSubview:firstButton];
Run Code Online (Sandbox Code Playgroud)
在其他地方,我告诉它clipToBounds.我得到的是图像中心方块的裁剪,而不是它的纵横比例渲染.我已经尝试了很多方法,包括在firstButton.imageView上设置mode属性,这似乎也不起作用.
Dav*_*ave 185
我有同样的问题.我看到这个问题有点老了,但是我想提供一个明确而正确的答案来保存其他人(比如我)在搜索结果中弹出的时候.
它花了我一些搜索和实验,但我找到了解决方案.只需设置UIButton中"隐藏"ImageView的ContentMode即可.
[[firstButton imageView] setContentMode: UIViewContentModeScaleAspectFit];
[firstButton setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
也许这就是丹雷在他接受的答案中提到的,但我怀疑不是.
Alf*_*sen 67
如果您正在处理UIButton的图像(而不是它的backgroundImage),则在UIButton本身或其imageView上设置contentMode没有任何效果(尽管其他答案如此).
或者这样做:
self.button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
self.button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
Run Code Online (Sandbox Code Playgroud)
或相应调整图像大小.
或者只使用附加了UITapGestureRecognizer的UIImageView(正确地尊重contentMode),或者使用透明的UIButton.
Chr*_*let 47
而不是设置contentMode按钮本身,你要设置contentHorizontalAlignment和contentVerticalAlignment性能,(关键)的contentMode该按钮的imageView任何种类方面的填充或配合.这是一个例子:
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentFill;
button.contentVerticalAlignment = UIControlContentVerticalAlignmentFill;
button.imageView.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)
当然,您还可以执行其他操作,例如将按钮的图像对齐到按钮的顶部.如果您不需要填充或适合宽高比,则可以单独设置对齐:
button.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
Run Code Online (Sandbox Code Playgroud)
在Swift中,你会想要使用:
button.contentHorizontalAlignment = .fill
button.contentVerticalAlignment = .fill
button.imageView?.contentMode = .scaleAspectFit
Run Code Online (Sandbox Code Playgroud)
这适用于所有iOS版本,包括具有自动布局的最新版本(即iOS 4至iOS 11+).
经过几个小时的混乱,这就是我在iOS 3.2下工作的方式.正如dusker所提到的,使用setBackgroundImage而不是setImage为我完成了这项工作.
CGRect myButtonFrame = CGRectMake(0, 0, 250, 250);
UIImage *myButtonImage = [UIImage imageNamed:@"buttonImage"];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setBackgroundImage:myButtonImage forState:UIControlStateNormal];
[myButton setFrame: myButtonFrame];
[myButton setContentMode: UIViewContentModeScaleAspectFit];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52258 次 |
| 最近记录: |