我在一个类中创建了一些uiimage视图类型的@properties,然后在我的rootviewcontroller中初始化了该类。
questions.h:
@property(nonatomic,strong)UIImageView *img1;
@property(nonatomic,strong)UIImageView *img2;
@property(nonatomic,strong)UIImageView *img3;
@property(nonatomic,strong)UIImageView *img4;
'viewcontroller.m'
-(void)viewdidload{
questions *q1=[[questions alloc]init];
q1.img1 =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"red.png"]];
[self.view addSubview:q1.img1];
UITapGestureRecognizer *Tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(iTap:)];
[q1.img1 addGestureRecognizer:Tap1];
}
-(void)iTap:(UIGestureRecognizer *)gestureRecognizer {
// do something..
}
我知道用初始化代码填充viewdidload不是一个好主意。 有没有更好的方法来使用类方法来实现这一点?
喜欢:
questions.m:
+(questions * )mymethod{
questions *q1=[[questions alloc]init];
q1.img1 =[[uiimageview alloc]initwithimage [uimage imagenamed@"red.png"]];
[self.view addSubview:q1.img1];
UITapGestureRecognizer *Tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(iTap:)];
[q1.img1 addGestureRecognizer:Tap1];
return q1;
}
然后在viewdidload中调用该方法
viewcontroller.m:
-(void)viewdidload{
[questions mymethod];
}
答案 0 :(得分:0)
在viewDidLoad
中创建添加视图没有什么问题。但是,您也可以使用- [UIViewController loadView]
。