如何为setImage()添加两个图像状态

时间:2015-08-11 03:58:58

标签: ios swift

我已经使用setImage来描述当前图像的状态,但我想在setImage()中同时使用两个状态。所以我想合并两个州.Highlighted& .Selected

button.setImage(emptyStarImage, forState: .Normal)
button.setImage(filledStarImage, forState: .Selected)
button.setImage(filledStarImage, forState: .Highlighted)

我有这三种状态,但我想要另一种状态,如

  button.setImage(filledStarImage, forState: [.Highlighted, .Selected])

这显示错误,我该怎么做?

1 个答案:

答案 0 :(得分:1)

我认为您使用的是旧版Xcode。

在iOS 9中允许他们这样做。

Apple检查以下示例:https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson5.html

有一个名为RatingControl.swift的文件

for _ in 0..<5 {
    let button = UIButton()

    button.setImage(emptyStarImage, forState: .Normal)
    button.setImage(filledStarImage, forState: .Selected)
    button.setImage(filledStarImage, forState: [.Highlighted, .Selected])

    button.adjustsImageWhenHighlighted = false

    button.addTarget(self, action: "ratingButtonTapped:", forControlEvents: .TouchDown)
    ratingButtons += [button]
    addSubview(button)
}

从Xcode 7和iOS 9,你可以像你描述的那样:

button.setImage(filledStarImage, forState: [.Highlighted, .Selected])