根据标题文字有很多关于对齐按钮图像的线索,但我找不到任何关于将图像对齐到按钮右侧的信息。
这没有效果:
button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 50);
如何将图像右键对齐按钮?可以在故事板中完成吗?
答案 0 :(得分:46)
答案 1 :(得分:17)
<强>故事板强>:
属性标签&gt;确保为“图片”选择了“内容边缘”标签:
然后你改变'Left'属性不对,这就是你以编程方式做的事情。换句话说,你从左边填充
UIEdgeInsetsMake = TOP |左| BOTTOM | RIGHT
以编程方式:
button.imageEdgeInsets = UIEdgeInsetsMake(0, 100, 0, 0);
注意:您可能还需要更改标题插入,具体取决于图像的参考位置
答案 2 :(得分:14)
我找到了一个棘手的方法
更新按钮的firebase.auth().createUserWithEmailAndPassword(email, password).then(function(){
var user = firebase.auth().currentUser;
user.updateProfile({
displayName: "Jane Q. User",
photoURL: "https://example.com/jane-q-user/profile.jpg"
}).then(function() {
// Update successful.
}, function(error) {
// An error happened.
});
约束
试试这个
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
答案 3 :(得分:12)
有几种不同的选择。
使用semanticContentAttribute
button.semanticContentAttribute = .forceRightToLeft
您也可以从界面(storyboard)布局设置语义属性。
或
使用包含UIButton和UIImage的UIView ,如此快照中所示。
这样可以轻松处理按钮操作,属性和自定义图像位置&amp;尺寸根据您的要求。试试这个。
答案 4 :(得分:11)
在Swift中以干净的方式执行此操作
button.semanticContentAttribute = .forceRightToLeft
希望这有帮助
答案 5 :(得分:5)
将其设为默认语义,即未指定或强制从左到右
并在button.imageEdgeInsets中将其设置为
UIEdgeInsets(顶部:0,左:self.view.frame.size.width - (图像大小+对齐空间),底部:0,右:0)
这将确保无论视图大小如何,它都将始终对齐按钮右侧的图像
答案 6 :(得分:3)
简单方法
使用扩展程序在右侧使用自定义偏移设置图像
extension UIButton {
func addRightImage(image: UIImage, offset: CGFloat) {
self.setImage(image, for: .normal)
self.imageView?.translatesAutoresizingMaskIntoConstraints = false
self.imageView?.centerYAnchor.constraint(equalTo: self.centerYAnchor, constant: 0.0).isActive = true
self.imageView?.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -offset).isActive = true
}
}
答案 7 :(得分:1)
就像这样:
btn.imageView?.translatesAutoresizingMaskIntoConstraints = false
btn.imageView?.centerYAnchor.constraint(equalTo: btn.centerYAnchor, constant: 0.0).isActive = true
btn.imageView?.trailingAnchor.constraint(equalTo: btn.trailingAnchor, constant: 0.0).isActive = true
btn.imageView?.contentMode = .right
答案 8 :(得分:1)
对我有用:
<app-two></app-two>
答案 9 :(得分:0)
尝试以下代码:
btn.contentHorizontalAlignment = .right
答案 10 :(得分:0)
答案 11 :(得分:0)
这对我有效,方法是设置:
button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
然后对于内部图像,将右插图设置为0。
button.imageEdgeInsets = UIEdgeInsetsMake(10.0, 10.0, 10.0, 0);
答案 12 :(得分:0)
这对我有用
btn.imageView?.translatesAutoresizingMaskIntoConstraints = false
btn.imageView?.centerYAnchor.constraint(equalTo: self.centerYAnchor, constant: 0.0).isActive = true
btn.imageView?.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -20).isActive = true
答案 13 :(得分:0)
SWIFT 5
button.imageEdgeInsets = UIEdgeInsets(top: 0, left: (bounds.width - 16), bottom: 0, right: 0)