ios - UIButton 图像即使有约束也会自动调整大小

标签 ios swift uiview uibutton nslayoutconstraint

我有一个小问题,我可能无法理解。我以编程方式添加了一个 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()
    }

它生成的是这样的: enter image description here

较大的盒子应该是实际尺寸,即 60x60,但它神奇地缩小到 32x32。

你能帮我指出问题吗?我知道我错过了一些很愚蠢的东西,但我无法理解它。

最佳答案

就个人而言,我喜欢将我的对象分开。虽然 UIButton 有一个 setImage(:UIImage) 方法,但我更喜欢创建一个 UIButton 然后添加我自己的 UIImageView然后向其中添加我自己的 UIImage。所以,在层次结构中

-- UIButton
    -- UIImageView
        -- UIImage

有了它,您可以指定特定的边界和与 UIImageView 关联的任何其他变量。我发现这种方法非常具体,尤其是当您必须更改 UIImageView 时。

关于ios - UIButton 图像即使有约束也会自动调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54263182/

相关文章:

ios - 如何居中 TabBarItem - Swift

swift - 在 rx-swift 重新加载表格后,在 UITableView 中保持选择

swift - 使用带有 uipageviewcontroller 和导航 Controller 的 Storyboard的 iPad Bug

ios - 圆形 UIImageView 在某些设备上是方形的

ios - Swift iOS - 视觉框架文本识别和矩形

iphone - 如何使用动画切换 View - Objective C

ios - NSPredicate 检查以逗号分隔的一串数字是否包含数字

ios - 如何使 TableView 单元格上的按钮调用正确的 tableView :cellForRowAtIndexPath?

ios - 如何在 Audiokit 中的频率/音高上构建一个带有包络的振荡器?

ios - 在swift中删除元素时索引超出范围数组错误