iphone - iOS UIButton 图像 contentMode 在 TouchUpInside 上闪烁

标签 iphone ios uibutton touch contentmode

如果我将 UIButton 图像的 imageView contentMode 设置为 UIViewContentModeScaleAspectFill,我会遇到 UIButton 图像问题。

UIButton *imageButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 200, 100)];
imageButton.imageView.contentMode = UIViewContentModeScaleAspectFill;
[imageButton setImage:[UIImage imageNamed:@"myImage.jpg"] forState:UIControlStateNormal];
[imageButton addTarget:self action:@selector(doSmth:) forControlEvents:UIControlEventTouchUpInside];

按钮内的图像已正确缩放以填充整个按钮区域。

单击/触摸按钮后,图像会调整大小(闪烁),就像将其 contentMode 设置为 UIViewContentModeScaleAspectFit 一样。

有人知道如何消除点击/触摸发生时的闪烁吗?

谢谢!

最佳答案

为什么要设置按钮的 imageView 的内容模式?您为指定状态设置的图像始终填充按钮的大小。因此,您必须将按钮的框架大小设置为图像的大小,而不是设置imageView contentMode

闪烁可能是按钮的高亮显示。如果您想设置自定义图像以突出显示,请使用以下代码:

[imageButton setImage:buttonHightlightImage forState:UIControlStateHightlighted]

关于iphone - iOS UIButton 图像 contentMode 在 TouchUpInside 上闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9819351/

相关文章:

objective-c - 定义一个类来存储信息

ios - Carthage: 没有适用于 iOS 平台的共享框架方案(针对我自己的框架)

iphone - 分组 TableView 下的 UIButton

ios - 是否可以让 UIButton 由文本组成,但最后有图像?

iphone - 更改 Tab Bar 应用程序中 UITableViewController 的样式

iphone - 离屏渲染层

ios - 使用 RSSParser 进行 Today 扩展小组件

iphone - 如何使用 UIScrollView?

ios - 替换 URL 中出现的空格

ios - 如何以编程方式将按钮定位到带有边距的表格单元格的最右边缘?