将button图像alignment到UIButton的右边缘

有很多关于根据标题文本alignmentbutton图像的线程,但是我找不到将图像alignmentbutton右侧的任何内容。

这不起作用:

button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 50); 

怎样才能正确的alignment一个button的图像? 它可以在故事板中完成吗?

语义:在视图上强制从右向左对我有效 在这里输入图像说明

故事板

“属性”标签>确保为“图片”select了“内容边缘”标签

1

那么你改变了'左'的财产不正确,这是你在做什么编程。 换句话说,你从左边填充它

UIEdgeInsetsMake = TOP | LEFT | 底部| 对

以编程方式:

 button.imageEdgeInsets = UIEdgeInsetsMake(0, 100, 0, 0); 

注意:您可能还必须更改标题插图,具体取决于您的图像的位置

我发现一个棘手的方法更新button的UIImageView约束

尝试这个

 button.imageView?.trailingAnchor.constraint(equalTo: button.trailingAnchor, constant: -8.0).isActive = true button.imageView?.centerYAnchor.constraint(equalTo: button.centerYAnchor, constant: 0.0).isActive = true 

但不要忘了加上这个来使约束有效

 button.translatesAutoresizingMaskIntoConstraints = false button.imageView?.translatesAutoresizingMaskIntoConstraints = false 

使其成为默认语义即未指定或从左向右

并在button.imageEdgeInsets中设置为

UIEdgeInsets(top:0,left:self.view.frame.size.width – (图像大小+alignment空间),bottom:0,right:0)

这将确保无论视图大小是什么,它将始终alignmentbutton右侧的图像

干净的方式来做到这一点在斯威夫特

 button.semanticContentAttribute = .forceRightToLeft 

希望这可以帮助