即使有约束,UIButton 图像也会自动调整大小
Posted
技术标签:
【中文标题】即使有约束,UIButton 图像也会自动调整大小【英文标题】:UIButton image automatically resizes even with constraints 【发布时间】:2019-01-19 00:52:40 【问题描述】:我有一个小问题,我可能无法解决这个问题。我以编程方式添加了一个 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。
你能帮我指出问题吗?我知道我错过了一些非常愚蠢的东西,但我无法理解它。
【问题讨论】:
老实说,我从来没有,也没有一次,对setImage
的方法感到轻松。就个人而言,我会创建一个UIImageView
,只需将 imageView 作为子视图添加到按钮。从那里,您可以随意自定义 imageView。
好吧,那是我最后的收获。我只是希望,在选择该选项之前,我可以直截了当。好吧,我想我没有多少了
为了得到一个被接受的答案,我会发布我的答案,你可以决定是否要。
哈哈。我正要删除这个,因为这个问题没有多大价值。去做吧。我会接受;)
这就是我说做的原因。
【参考方案1】:
就我个人而言,我喜欢将我的对象分开。虽然UIButton
有一个setImage(:UIImage)
方法,但我更喜欢创建一个UIButton
,然后添加我自己的UIImageView
,然后添加我自己的UIImage
。所以,在层次结构中
-- UIButton
-- UIImageView
-- UIImage
通过它,您可以指定与UIImageView
关联的特定边界和任何其他变量。我发现这种方法非常具体,尤其是在您必须更改 UIImageView
时。
【讨论】:
以上是关于即使有约束,UIButton 图像也会自动调整大小的主要内容,如果未能解决你的问题,请参考以下文章