ios - 文本右侧带有图像的 UIButton,按钮边缘的尾部空格固定

标签 ios swift xcode uicollectionview uibutton

为了正确处理这种情况,我需要在我的 UIButton 上的文本右侧有一个复选标记,并且复选标记必须距离按钮右边缘有固定长度。为了说明,我添加了两张图片,说明它应该如何工作:

enter image description here

enter image description here

如您所见,复选标记完美对齐 - 所以我很高兴!但是当我在 iphone6S PLUS 或 iPad 上运行我的应用程序时,复选标记变得一团糟..

这是另一张图片来说明 - 这是在 iPhone 6S PLUS 上 - 它在 iPad 上更糟糕。 enter image description here

我无法在 Interface Builder (AutoLayout) 中对齐复选标记,所以我在代码中完成了所有图像添加。 这是我的代码,用于将复选标记应用于按钮:

let btnImage = UIImage(named: "checkmarkWhite")

categoryButtonOne.setImage(btnImage, forState: UIControlState.Selected)
categoryButtonOne.semanticContentAttribute = .ForceRightToLeft
categoryButtonOne.imageEdgeInsets = UIEdgeInsetsMake(0, (categoryButtonOne.frame.width / 2) - (btnImage?.size.width)! - 10, 0, 0)

我的意图是获取按钮的长度(因为它因设备的屏幕尺寸而异),然后将图像放在同一位置,在所有按钮上..但是如你所见,我并没有真正成功。

你们中有人知道为什么复选标记没有被平均放置吗?我使用完全相同的代码行为所有按钮放置图像。 它与按钮上的文字有关吗?如果是这样,是否可以让按钮忽略文本,而只正确放置图像?

最佳答案

一个简单易行的解决方案: 将自定义的 View 与可处理用户触摸/点击操作(UIButton 或点击手势)的标签、图像和可操作元素结合使用。这将很容易处理您的要求。

根据您的设计,您已在此处共享,将 UICollectionView 与自定义单元格一起使用。它比自定义 View 更容易。

否则,您可以尝试以下解决方案: Align button image to right edge of UIButton

关于ios - 文本右侧带有图像的 UIButton,按钮边缘的尾部空格固定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43865593/

相关文章:

swift - 如何在 iOS 中模拟不同的外形尺寸?

ios - xcode NSInvalidUnarchiveOperationException ,当尝试取消存档文件时

ios - 调试 Xcode 异常断点;未记录异常 - redux

java - 快速覆盖方法

ios - 将变量 (Int) 传递给 View 控件 (Popover)

objective-c - Xcode Objective-c 警告 "creating selector for nonexistent method"与 OCUnit (SenTestingKit)

ios - OpenAL 只适用于 caff 格式的音频文件吗

ios - 如何在生产中为实时 iOS 应用程序添加额外权限?

ios - 崩溃 : "Thread 1: EXC_BAD_ACCESS"?

ios - CoreMotion 的主线程检查器警告,仅出现在 2018 款 iPhone 上