我有一个带有xib的UIView子类,名为RoundedImageView
,它只实现了drawRect方法。 xib包含一个带有插座的AsyncImageView
(它是UIImageView
的子类)。此RoundedImageView
是自定义表格视图单元格的一部分。在此单元格的awakeFromNib
方法中,RoundedImageView
不是零,但它的AsyncImageView
出口是零。为什么会发生这种情况?如何解决这个问题?
答案 0 :(得分:1)
在与OP讨论聊天后,问题原来是表格单元格/ RoundedImageView
位于一个笔尖中,而RoundedImageView
位于AsycImageView
位于另一个笔尖中。解决方案是从单元格中删除RoundedImageView
,并将其nib加载到单元格的awakeFromNib
方法中:
@implementation InviteFriendsImageVIew
- (void)awakeFromNib
{
UINib *imageViewNib = [UINib nibWithName:@"RoundedImageView" bundle:nil];
RoundedImageView *imageView = [imageViewNib instantiateWithOwner:nil options:nil][0];
imageView.frame = // set frame here
[self addSubView:imageView];
self.roundedImageView = imageView;
}
答案 1 :(得分:0)
您正在某处创建视图实例,可能包含:
RoundedImageView *v = [[RoundedImageView alloc] initWithFrame:...];
这不使用NIB文件。您需要使用以下命令加载NIB:
UINib *nib = [UINib nibWithNibName:... bundle:nil];
NSArray *views = [nib instantiateWithOwner:... options:nil];
然后您可以将RoundedImageView
的实例作为:
RoundedImageView *v = views[0];