给xib中的子控件赋值的方法有3种:
1、通过UIview的subviews来获取想要赋值的子控件,然后给获取到的控件赋值就行:
UIImageView *imageView = appInfoView.subviews[2]; imageView.image = [UIImage imageNamed:@"icon_00"];
上面的代码中的appInfoView是xib中的一个view的实例,里面有一个image View子控件,一个button子控件和一个Label子控件,其中imageView子控件在最后。
subviews是UIview的一个属性,类型为NSArray ,用来存放UIview的子控件,通过subviews的getter方法可以得到view中的所有子控件的集合,集合的第二个索引值存放有xib中的view的imageView子控件,拿到子控件后给它赋值就行。
2、通过Tag来获取子控件,再赋值:
UILabel *label = [appInfoView viewWithTag:12]; label.text = @"appName";
在xib中设置子控件的Tag值,通过UIview的方法viewWithTag:来获取想要的子控件;
在上面的代码的程序中,xib中的view的一个label的子控件的Tag值被设置为12,通过方法viewWithTag:12就能得到label子控件,赋值为appName。
3、自定义一个UIView的子类,把xib中的view的子控件Outlet连接到自定义view类中,通过自定义view的实例来获取想要赋值的子控件
XCAppInfoView *appInfoView = [[[NSBundle mainBundle] loadNibNamed:@"AppInfoView" owner:nil options:nil] lastObject]; appInfoView.appImageView.image = [UIImage imageNamed: [self.appInfos[i] valueForKey:@"icon"]]; appInfoView.appNameLabel.text = [self.appInfos[i] valueForKey:@"name"];
XCAppInfoView 是UIView的一个子类,里面有两个属性appImageView 和appNameLabel 分别对应AppInfoView.xib中的一个view的子控件ImageView和Label