UIButton 在突出显示时忽略 contentMode(调整ImageWhenHighlighted)
我使用 [myButton setImage:forState:]; 为我的 UIButton 设置了
UIImage
我使用 [[myButton imageView] setContentMode:UIViewContentModeScaleAspectFit]; 设置它的
contentMode
但是,当您点击该按钮时,它会返回到 UIViewContentModeScaleToFill 并拉伸我的图像。
使用 adjustsImageWhenHighlighted 修复了这个问题,但随后我失去了我想保留的变暗效果。
关于如何应对这个问题有什么建议吗?
I set a UIImage
for my UIButton using [myButton setImage:forState:];
and I set it's contentMode
using [[myButton imageView] setContentMode:UIViewContentModeScaleAspectFit];
But when you tap the button, it goes back to UIViewContentModeScaleToFill
and stretches my image out.
using adjustsImageWhenHighlighted
fixes this, but then I loose the darkening effect, which I would like to keep.
Any suggestions on how to cope with this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我对这个问题的解决方案(可能效率不高,但它给了你一个自定义突出显示效果的机会,我认为它看起来比标准的更好)是:
设置图像的方法(我的方法,您可以使用不同的模式重要来设置 adjustmentImageWhenHighlighted 属性)
重写 setHighlighted: 方法,如下所示:
这对我有用,但如果有更好的方法,我会很高兴了解它。
my solution to this problem (maybe not efficient but it gives you an oportunity to customize the highlight effect, i think it looks better then standard one) is:
method for setting image (my method, you can use different mode important to set adjustsImageWhenHighlighted property)
override setHighlighted: method like so:
This works for me, but if there is a better way, i'll be glad to get to know it.
由于某种原因,当您在为任何状态设置图像后设置内容模式时,会发生这种情况。
确保在设置图像之前以编程方式以及在 InterfaceBuilder 上设置内容模式。要在 IB 上修复此问题,请确保删除为所有状态设置的所有图像,设置内容模式,然后再次放回图像。
这为我解决了。
For some reason that happens when you set the content mode after setting the image for any state.
Make sure you set the content mode before setting the images, programatically and on InterfaceBuilder as well. To fix this on IB make sure you remove all images set for all states, set the content mode, and then put the images back again.
That fixed it for me.