2012-02-08 1 views
3

I UIButtonが無効に見えるようにするには、次のコードをしようとしています:UIButtonの外観を無効にするための他のオプションはありますか?

btnYourButton.alpha = 0.6f; 
btnYourButton.enabled = NO; 

ながら有効になっている(もちろん有効探すために)

btnYourButton.alpha = 1.0f; 
btnYourButton.enabled = YES; 

がどのような方法ではなく、によって私はこの両方を行うことができます(UIButtonを無効/有効にし、無効にする/有効にする)。

答えて

4

それとも、UIButtonのサブクラスを試みることができる、何かのように:MyKindOfButton.h

#import <UIKit/UIKit.h> 

@interface MyKindOfButton : UIButton 

@end 

ファイルMyKindOfButton.m

#import "MyKindOfButton.h" 

@implementation MyKindOfButton 

- (void)setEnabled:(BOOL)enabled { 

    [super setEnabled: enabled]; 

    if (enabled) { 
     self.alpha = 1.0f; 
    } else { 
     self.alpha = 0.6f; 

    } 
} 

@end 
0

ファイルは、別のオプションは、(にテキストの色を変更することですライトグレーなど)を無効にします。ストーリーボードエディタで、State ConfigポップアップボタンからDisabledを選択し、Text Colorポップアップボタンを使用してテキストの色を変更します。コードでは、-setTitleColor:forState:メッセージを使用します。

(私はこれは古い記事で実現するが、私は他の人がこのオプションを好むかもしれないと思った)

1

私は、これは非常に古い質問ですが、ここでは非常に素晴らしいソリューションです知っています。 UIColorのカテゴリを作成し、このメソッドを追加するだけです。

+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size 
{ 
    UIGraphicsBeginImageContext(size); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 

    CGContextSetFillColorWithColor(context, color.CGColor); 
    CGContextFillRect(context, (CGRect){.size = size}); 

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return image; 
} 

+ (UIImage *)imageWithColor:(UIColor *)color 
{ 
    return [UIImage imageWithColor:color size:CGSizeMake(1, 1)]; 
} 

backgroundImageを任意の色に設定するだけで、自動的に無効な外観が処理されます。

[button setTitleColor:[UIColor someColor] forState:UIControlStateNormal]; 
関連する問題