IBOUTLET在DrawRect方法中为零



我有一个带有XIB的Uiview子类,称为RoundedImageView,该子类仅实现drawRect方法。XIB包含一个带有出口的AsyncImageView(是UIImageView的子类)。此RoundedImageView是自定义表视图单元格的一部分。在该单元格的awakeFromNib方法中,RoundedImageView不是零,而是AsyncImageView插座是零。为什么会发生这种情况,我该如何解决?

在与op在聊天中进行了讨论之后,事实证明,table/ RoundedImageView是一个笔尖,而使用AsycImageViewRoundedImageView则在另一个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];

相关内容

  • 没有找到相关文章

最新更新