例えば「UITextView が空白の時はClear ボタンを非表示にしたい」といった場合。
毎回UIBarButtonItem を消して、必要になったら再度追加して…ってのは面倒臭い。
そこで、ボタン自体はそこに置いたまま、非表示にしてしまおうという方法。
if ( showButton ) {
[self.barButtonItem setEnabled:YES];
self.barButtonItem.tintColor = (UIColor*)textColor;
}
else {
[self.barButtonItem setEnabled:NO];
self.barButtonItem.tintColor = [UIColor colorWithWhite:0 alpha:0];
}
非表示にする時は、ボタンを使用不可にした上で、文字色を透明にしちゃうわけですね。
ちなみに、ボタンのテキスト色がデフォルトの場合、textColor はnil でOKです。
参考
こちらの記事を参考にさせて頂きました。
つか、例によってまんまです。