以下は、IB でボタンのクラスとして設定されたカスタム ボタンの簡単な例です。
#import "TestButton.h"
@implementation TestButton
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
UIFont * font = [UIFont systemFontOfSize:8];
if ( self.setFont )
self.titleLabel.font = font;
self.titleLabel.textColor = [UIColor redColor];
}
@end
setFont が false の場合、つまりフォントが変更されていない場合、ラベルのテキストの色は予想どおり赤になります。しかし、それが true の場合、ボタンのテキストの色は IB で設定されているものになります。
問題は、ここで何が起こっているのか、IB でプログラムによって割り当てられたボタンのテキストとフォントの両方を変更するにはどうすればよいかということです。
これらの特徴と IBDesignable のファンキーさを知りたい場合は、デモ プロジェクトを参照してください。