我在项目中有一个实体的详细信息屏幕(实际上是“照片”),可以有注释。如果是这样,屏幕将显示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/