我試圖創建一個按鈕,看起來像這樣:按鈕右對齊圖像x指向從右側
所以具有邊框和右邊ImageView的。
我的子類的UIButton這樣的:
class ButtonWithRightImage: UIButton {
override func imageRectForContentRect(contentRect:CGRect) -> CGRect {
var imageFrame = super.imageRectForContentRect(contentRect)
imageFrame.origin.x = CGRectGetMaxX(super.titleRectForContentRect(contentRect)) - CGRectGetWidth(imageFrame)
return imageFrame
}
override func titleRectForContentRect(contentRect:CGRect) -> CGRect {
var titleFrame = super.titleRectForContentRect(contentRect)
if (self.currentImage != nil) {
titleFrame.origin.x = CGRectGetMinX(super.imageRectForContentRect(contentRect))
}
return titleFrame
}
}
我建立了我的按鈕,如下:
lazy var testButton: ButtonWithRightImage = {
let button = ButtonWithRightImage(forAutoLayout:())
button.setTitle("Privacy", forState: .Normal)
button.setTitleColor(UIColor.DarkBlue(), forState: .Normal)
button.layer.borderWidth = 1
button.layer.borderColor = UIColor.grey().CGColor
button.setImage(UIImage(named: "arrow"), forState: .Normal)
button.contentHorizontalAlignment = .Left
button.contentEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0)
return button
}()
現在我的按鈕看起來是這樣的:
正如你可以看到圖像沒有與從右邊20點對齊。 我想不出如何做到這一點。我使用自動佈局來顯示按鈕,所以我不能只修改我猜的框架。
謝謝你:-)的工作原理就像請求。 – user1007522