如何将此代码从Objective-C转换为Swift?

时间:2016-04-29 11:27:15

标签: ios objective-c swift

   [self.navigationItem.leftBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* item, NSUInteger i, BOOL *stop) {
        item.customView.alpha = alpha;
    }];
    [self.navigationItem.rightBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* item, NSUInteger i, BOOL *stop) {
        item.customView.alpha = alpha;
    }];

如何将此代码块转换为Swift?感谢。

2 个答案:

答案 0 :(得分:2)

在Swift中,leftBarButtonItems是一个可选数组[UIBarButtonItem]?, 因此可以使用可选链接和forEach()枚举它。 customView也是可选的UIView?,因此分配给alpha 属性也可以通过可选链接完成:

self.navigationItem.leftBarButtonItems?.forEach { item in
    item.customView?.alpha = alpha
}

答案 1 :(得分:1)

有很多很酷的对象可以快速访问网站。使用其中一个并整理结果,你准备好了!

这是来自objectivec2swift.com的结果:

self.navigationItem.leftBarButtonItems.enumerateObjectsUsingBlock({(item: UIBarButtonItem, i: Int, stop: Bool) -> Void in
    item.customView.alpha = alpha
})
self.navigationItem.rightBarButtonItems.enumerateObjectsUsingBlock({(item: UIBarButtonItem, i: Int, stop: Bool) -> Void in
    item.customView.alpha = alpha
})

但这不是最快速的代码。让我们整理一下:

self.navigationItem.leftBarButtonItems?.forEach {
    $0.customView?.alpha = alpha
}
self.navigationItem.rightBarButtonItems?.forEach {
    $0.customView?.alpha = alpha
}

看那个!太开心了!