0

我在按钮顶部显示图像,在 iPhone 7 上一切正常,例如:

在此处输入图像描述

我将按钮背景颜色设置为蓝色以查看按钮框架。

由于我在按钮的父视图上设置了纵横比,因此小型设备和 iPhone 4S 上的按钮大小会发生变化,因此我有:

在此处输入图像描述

按钮的图像未调整大小。这是我的代码:

public extension UIButton {

    func setButtonWithTextBehindImage () {
        let spacing = CGFloat(0.0)

        let imageSize = self.imageView?.frame.size
        self.titleEdgeInsets = UIEdgeInsetsMake(0.0, -(imageSize?.width)!, -((imageSize?.height)! + spacing), 0.0)
        let titleSize = self.titleLabel?.frame.size
        self.imageEdgeInsets = UIEdgeInsetsMake(-((titleSize?.height)!), 0.0, 0.0, -(titleSize?.width)!)
    }
}

我尝试在按钮和按钮 imageView 上设置 contentMode .scaleAspectFit 但每次我的 imageSize 为 (30, 30) (我的@1x 图像的大小)并且它不会调整为按钮大小。

我能怎么做 ?泰

4

1 回答 1

0

您能否提供更多关于您如何使用您提供的代码片段的上下文(也许我们可以尝试运行一些代码)?来自https://developer.apple.com/reference/uikit/uibutton/1624010-titleedgeinsets的文档提到在调整矩形大小以适应后应用插图。您在扩展程序中调用函数的时间可能会影响预期的调整大小不会发生 - 例如,您是否在加载视图时调用它,在它出现之后,在子视图布局之后。

于 2017-03-13T16:59:03.347 回答