我有一个带有XIB的Uiview子类,称为RoundedImageView
,该子类仅实现drawRect方法。XIB包含一个带有出口的AsyncImageView
(是UIImageView
的子类)。此RoundedImageView
是自定义表视图单元格的一部分。在该单元格的awakeFromNib
方法中,RoundedImageView
不是零,而是AsyncImageView
插座是零。为什么会发生这种情况,我该如何解决?
在与op在聊天中进行了讨论之后,事实证明,table/ RoundedImageView
是一个笔尖,而使用AsycImageView
的RoundedImageView
则在另一个NIB中。该解决方案是从单元中删除RoundedImageView
,然后将其笔尖加载到单元的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;
}
您正在创建视图实例的某个地方,可能是:
RoundedImageView *v = [[RoundedImageView alloc] initWithFrame:...];
这不使用笔尖文件。您需要加载笔尖:
UINib *nib = [UINib nibWithNibName:... bundle:nil];
NSArray *views = [nib instantiateWithOwner:... options:nil];
然后,您可以将RoundedImageView
的实例as:
RoundedImageView *v = views[0];