我有一个小问题,我可能无法解决。我有一个以编程方式添加的uibutton。我向该按钮添加一个UIImage。我只是添加基本约束,但是由于某些原因,在屏幕上运行时,它倾向于缩小为较小的尺寸。
以下是我生成按钮的代码:
var shareButton: UIButton!
func addShareButton() {
shareButton = UIButton()
shareButton.autoresizesSubviews = false
shareButton.clipsToBounds = true
shareButton.translatesAutoresizingMaskIntoConstraints = false
shareButton.adjustsImageWhenHighlighted = false
shareButton.setImage(UIImage(named: "wshare"), for: .normal)
shareButton.addTarget(self, action: #selector(shareButtonPressed), for: .touchDown)
shareButton.addTarget(self, action: #selector(shareButtonReleased), for: .touchUpInside)
view.addSubview(shareButton)
}
func addConstraints() {
NSLayoutConstraint.activate([
// Share Button
shareButton.widthAnchor.constraint(equalToConstant: 60),
shareButton.heightAnchor.constraint(equalToConstant: 60),
shareButton.rightAnchor.constraint(equalTo: view.rightAnchor, constant: -15),
shareButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -25),
])
}
override func updateViewConstraints() {
addConstraints()
super.updateViewConstraints()
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
addShareButton()
}
较大的框应该是60x60的实际尺寸,但它神奇地缩小为32x32。
您能帮我指出问题吗?我知道我很想念某些东西,但是我无法回避它。
答案 0 :(得分:1)
我个人喜欢将对象分开。尽管UIButton
具有setImage(:UIImage)
方法,但我更喜欢创建一个UIButton
,然后向其中添加自己的UIImageView
,然后添加自己的UIImage
。所以,在层级
-- UIButton
-- UIImageView
-- UIImage
这样,您可以指定特定范围以及与UIImageView
相关的任何其他变量。我发现这种方法更加具体,尤其是在必须更改UIImageView
的情况下。