我在项目中有一个实体的详细信息屏幕(实际上是“照片”),可以有注释。如果是这样,屏幕将显示3个最新消息和“查看全部”按钮。问题是如何显示这3条评论。 (在Android上,我只是为此使用LinearLayout。)TableView不适合我所看到的(由于具有静态高度),因此我决定创建我的自定义模板/局部 View CommentView并将其添加到针对每个注释的scrollView中。

我用 View 和一些子控件(用户照片,用户名,日期,文本)创建了XIB文件。此外,我还创建了从UIView交付的CommentView类。文件的所有者设置为CommentView。顶级 View 的类也设置为CommentView(我尝试了各种组合)。我从顶级 View (vContent)和所有 subview 创建了导出。

这是CommentView.h:

@interface CommentView : UIView

@property (strong, nonatomic) IBOutlet CommentView *vContent;
@property (weak, nonatomic) IBOutlet UIImageView *ivUserPhoto;
@property (weak, nonatomic) IBOutlet UILabel *lUserName;
@property (weak, nonatomic) IBOutlet UILabel *lCreated;
@property (weak, nonatomic) IBOutlet UILabel *lText;


@end

这是CommentView.m:
#import "CommentView.h"

@implementation CommentView

-(void)awakeFromNib {
    [[NSBundle mainBundle] loadNibNamed:@"CommentView" owner:self options:nil];
    [self addSubview: self.vContent];
}

@end

然后,我尝试将注释添加到实体的 View 中,并从问题标题中得到该错误。这不是我第一次得到它,但是现在我真的不知道问题出在哪里...

在此行发生错误(我从PhotoViewController调用它):
CommentView *commentView = [[[NSBundle mainBundle] loadNibNamed:@"CommentView" owner:self options:nil]objectAtIndex:0];

全文:
'[setValue:forUndefinedKey:]:此类与键ivUserPhoto的键值编码不兼容。

非常感谢您的帮助!谢谢!

最佳答案

我在这里找到了另一个例子。所以我这样重写我的CommentView.m ...

@implementation CommentView

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];

    if (self) {
        NSArray *nibContents = [[NSBundle mainBundle]loadNibNamed:@"CommentView" owner:self options:nil];
        [self addSubview:nibContents[0]];
    }

    return self;
}

@end

...以及我添加 subview 的方式如下:
CommentView *commentView = [[CommentView alloc]initWithFrame:CGRectMake(0, 0, 320, 81)];

commentView.lUserName.text = comment.user.name;
[self.vComments addSubview:commentView];

现在,它正在按我的预期工作。

我仍然不完全理解为什么我的问题中有很多类似的示例,以及为什么它对我不起作用...我希望我的代码可以为某人节省时间...

关于ios - 再次,此类不符合键的键值编码...,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19732536/

10-13 03:58