アプリが Retina 4 デバイスで実行されている場合、このUIImageカテゴリを使用して正しいアセットを自動的に見つけます:
http://www.sourcedrop.net/FY53a14b0127f
サブクラスのメソッドでインスタンス化されている-568h@2x場合、サフィックスを持つアセットを正しく見つけます。UIImageUIViewinit
-(id) init{
self = [super init];
if(self){
myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setImage:[UIImage imageNamed:@"go_back_image"] forState:UIControlStateNormal];
[self addSubview:myButton];
}
}
ただし、UIImageがクラスでインスタンス化されている場合didMoveToSuperView、カテゴリはアセットを取得しません:
-(void)didMoveToSuperview{
if(self.superview != nil){
[myButton setImage:[UIImage imageNamed:@"otherImage"] forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"otherImageHighlighted"] forState:UIControlStateHighlighted];
}
}
UIImageで作成された場合didMoveToSuperview、通常サイズのアセットが表示されます...
何かご意見は?