UIImageView子类中的自定义初始化程序 - 是否需要覆盖initWithImage或initWithFrame初始化程序?

时间:2012-05-20 14:24:50

标签: objective-c ios initialization

我的类是UIImageView的子类。我像这样创建自定义初始化程序

@interface FishView : UIImageView
@end

@implementation FishView

- (id)initWithFishType:(FishType)fishType {

    self = [super init];
    if (self) {
        //my custom initialization
    }
    return self;

}

是否需要覆盖initWithImage?

- (id)initWithImage:(UIImage)image
{
    self = [super initWithImage:image];
    if (self) {
        [self initWithFishType:FTNone];
    }
    return self;
}   

3 个答案:

答案 0 :(得分:1)

仅当您计划在代码中调用initWithImage并希望它执行特殊操作时。

答案 1 :(得分:0)

如果你想要额外的功能,你只需要覆盖。

但如果我正在阅读你的问题:“我需要自定义初始化功能,它应该进入initWithImage还是initWithFrame?那么答案就更复杂了。那么你实际上需要覆盖一个一堆初始化程序,请参阅

答案 2 :(得分:0)

在Swift 2中,UIImageView子类唯一必需的初始值设定项是

required init?(coder: NSCoder) { super.init(coder: coder) }