【问题标题】:UIButton with image on right side of text, with fixed trailing space to button edgeUIButton 与文本右侧的图像,与按钮边缘固定尾随空间
【发布时间】:2017-10-07 12:22:12
【问题描述】:

为了解决这个问题,我需要在我的 UIButtons 上的文本右侧打一个复选标记,并且复选标记必须与按钮右边缘保持固定长度。为了说明,我添加了两张图片,说明它应该如何工作:

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

这是另一张图片 - 这是在 iPhone 6S PLUS 上 - 在 iPad 上更糟糕。

我无法在 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)

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

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

【问题讨论】:

  • 你使用了自动布局吗?
  • 我正在使用 AutoLayout(对不起,我称之为界面生成器)将文本向左对齐,但我无法将图像放置在与每个按钮的右侧相同的距离上,来自自动布局编号.. :/
  • 您是否添加了尾随和底部约束?图像需要这两个约束
  • 不是在向 UIButton 添加图像时 - 对吧?.. 您不能像通常在视图中添加图像那样在按钮内添加图像..
  • 对不起,是 button 。你分配给按钮了吗?

标签: ios swift xcode uicollectionview uibutton


【解决方案1】:

简单易行的解决方案: 使用带有标签、图像和可操作元素的自定义 视图,这些元素可以处理用户触摸/点击操作(UIButton 或点击手势)。处理您的要求将非常容易。

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

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

【讨论】:

  • 谢谢!但如果可能的话,我更喜欢使用 UIButtons 的解决方案 :) 如果没有,您的解决方案可能会有用
  • Offcouse 可以使用 Button,但可以使用自定义按钮,而不是纯 UIButton。按钮的宽度随屏幕尺寸而变化(不是固定大小的按钮),因此 UIButton 不会为您提供所需的精确解决方案。
猜你喜欢
  • 2015-11-28
  • 1970-01-01
  • 2014-09-02
  • 1970-01-01
  • 2014-10-18
  • 2020-10-17
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
相关资源
最近更新 更多