在xib中添加子视图到自定义UIView
问题描述:
首先,我有一个存在Asset.m/Asset.h
,它是subclass of UIView
。然后我创建一个空的xib文件,并将xib文件的所有者类更改为Asset。然后我为这个xib创建一个视图和一个标签,我可以在UIView
中拖动并创建IBOutlet
。在xib中添加子视图到自定义UIView
IBOutlet UIView *videoOverlay;
IBOutlet UILabel *videoTimeLable;
然后我想videoOverlay添加到使用addSubview Asset.m的观点。
self = [super initWithFrame:CGRectMake(0, 0, 0, 0)];
[self addSubview:videoOverlay];
但视图 - videoOverlay不显示。
我打印出来videoOverlay的大小,全部为0:
NSLog(@"width =%f height= %f", videoOverlay.frame.size.width, videoOverlay.frame.size.height);
为什么?
答
最后,我自己找到解决方案。在代码中使用添加在此视图(videoOverlay和videoTimeLable属于这一观点):
UIView *thumbs;
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ELCAsset" owner:self options:nil];
thumbs = [nib objectAtIndex:0];
[self addSubview:thumbs];
然后videoOverlay和videoTimeLable可以显示出来。
尝试[self.view addSubview:videoOverlay] – WaaleedKhan 2012-07-20 09:46:07
看来**你**已经将尺寸设置为零,对不对? 'CGRectMake(0,0,0,0);':D – holex 2012-07-20 09:47:17
是的,但videoOverlay在xib文件中有大小。 – 2012-07-23 01:20:56