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

标签 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])

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

最佳答案

我认为您使用的是旧版本的 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])

关于ios - 如何为 setImage() 添加两个图像状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31932959/

相关文章:

ios - 尝试从文本字段获取纬度和经度时无法转换类型的值

ios - 使用 UIActivityViewController 检测启动了哪个 App

ios - 自定义 `UITextField` 子类没有出现在屏幕上

ios - 点击时查看抖动动画错误

iphone - 我们可以将音频缓冲区写入作为远程 IO 回调的一部分获得的文件中吗?

ios - 从 GameScene 设置自定义 SKSpriteNode 的位置

iphone - 具有自动布局的 UIView,获取他的大小

swift - 在 Swift 中对 TableView 的 plist 数组进行排序

arrays - 如何在 RxSwift 中使可变字典变得可观察

swift - 快速可变字典的扩展