iOS 15 中 UIButton 图像行为发生变化?

mat*_*att 18 uibutton ios ios15

我的代码很简单;我有一个 UIButton 的出口,button我正在代码中设置它的图像:

    let jack = UIImage(named:"jack.png")
    self.button.setImage(jack, for:.normal)
Run Code Online (Sandbox Code Playgroud)

问题是这并不像我预期的那样。我希望按钮图像的大小缩小到按钮大小,并且我希望它是模板图像(用继承的色调颜色着色)。相反,我看到的是原始图像,而且它是全尺寸的。这是 iOS 15 中的变化吗?

似乎是这样,因为如果我将项目的部署目标设置为 iOS 14 并在 iOS 14 模拟器上运行它,我确实会得到我期望的行为。

mat*_*att 42

这是 iOS 15 中的变化吗?

是和不是。iOS 15 中确实存在更改,但您遇到问题的原因是 Xcode 13 中的更改。

iOS 15 的变化在于提供了一种全新的按钮配置方式。首先为按钮提供四种新的 iOS 15 类型之一:普通、灰色、有色和填充。如果您将按钮设置为其中任何类型,则表示您选择了新行为。

您看到的问题是因为,在 Xcode 13 中,当您在情节提要中创建按钮时,它确实为按钮提供了以下类型之一:普通。所以你在不知不觉中选择了新的分配!

如果您想要旧的行为,解决方案是将“样式”弹出菜单(在“属性”检查器中)从“普通”更改为“默认”。现在您有了一个旧式按钮,它将按照您习惯的方式运行。

(当然,从长远来看,你会想要采用新的分配。我只是解释行为上的明显变化。)

  • 在我弄清楚这一点之前我已经疯了。如果您希望故事板中的旧式 UIButton 行为(Xcode 13、iOS 15),请在添加 UIButton 后更改样式 -> 默认。 (3认同)