2

在 iOS 6 和 xcode 4 中,我有这个: https://dl.dropboxusercontent.com/u/60718318/photo.PNG 很容易用代码创建

[editButton setTintColor:[UIColor theGreenColor];

但是在 iOS 7 手机上,使用 xcode 5 使用 iOS 6 SDK 构建的应用程序,使用相同的确切代码,编辑按钮变得不着色。(我最多只能发布两张图片,所以想象一下编辑按钮的颜色与后退按钮的颜色相同)SO 和互联网上的许多人都说,现在给按钮着色的唯一方法是调用

self.navigationController.navigationBar.tintColor = [UIColor theGreenColor];

这也在 WWDC 会议中被引用。但是,当我尝试这样的事情时,我只会得到以下信息: https ://dl.dropboxusercontent.com/u/60718318/photo-2.PNG 这甚至不接近正确。根据我观看的 WWDC 会议,这应该为两个按钮着色,而不仅仅是 1。我怎样才能只为 1 按钮着色,就像我在 xcode 4 中的 iOS 6 中一样?

4

2 回答 2

1

我认为这不再可能了,老实说,我认为 Apple 只是无缘无故地完全删除了该功能,并且没有真正提及他们确实这样做了。如果有人看到这个问题并想知道我是如何绕过它的,我只是拍了一张旧按钮的照片并将其用作新按钮的图像。

于 2013-10-17T15:11:10.930 回答
1

这当然非常不寻常,因为您绝对可以提供上述功能。tintColor诀窍是修改UIBarButtonItem'sUIButton而不是直接在项目上。这是一个实现这个的 ViewController 的幼稚实现

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        navigationItem.rightBarButtonItem = createBarButtonItem()
    }

    func createBarButtonItem() -> UIBarButtonItem {
        let button = UIButton(frame: CGRect(origin: CGPointZero, size: CGSize(width: 44, height: 44)))
        button.setTitle("Press Me", forState: .Normal)
        button.addTarget(self, action: "handleButtonTap:", forControlEvents: .TouchUpInside)
        button.tintColor = UIColor.blueColor()
        let buttonItem = UIBarButtonItem(customView: button)
        return buttonItem
    }

    func handleButtonTap(button: UIButton) {
        button.tintColor = UIColor.redColor()
    }
}

当然,您会想要管理按钮选择的状态,以便您可以切换颜色,但我将其留给您

于 2015-05-26T21:00:45.507 回答