我的项目中有一个实体的详细信息屏幕(实际上是'照片'),可以有评论.如果是,则屏幕显示最近的3和"查看全部"按钮.问题是如何显示3条评论.(在Android上我只是使用LinearLayout.)TableView不适合,因为我可以看到(由于有静态高度),所以我决定创建我的自定义模板/部分视图CommentView并将其添加到scrollView为每个注释.
我创建了带有视图的XIB文件和一些子控件(用户照片,用户名,日期,文本).另外,我创建了从UIView提供的类CommentView.文件的所有者设置为CommentView.顶级视图的类也设置为CommentView(我尝试了各种组合).我从顶级视图(vContent)和所有子视图创建了插座.
这是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
Run Code Online (Sandbox Code Playgroud)
这是CommentView.m:
#import "CommentView.h"
@implementation CommentView
-(void)awakeFromNib {
[[NSBundle mainBundle] loadNibNamed:@"CommentView" owner:self options:nil];
[self addSubview: self.vContent];
}
@end
Run Code Online (Sandbox Code Playgroud)
然后我尝试在实体的视图中添加注释,并从问题标题中获得该错误.这不是我第一次得到它,但现在我真的不知道问题是什么......
此行发生错误(我从PhotoViewController调用它):
CommentView *commentView = [[[NSBundle mainBundle] loadNibNamed:@"CommentView" owner:self options:nil]objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

全文:'[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
Run Code Online (Sandbox Code Playgroud)
...以及我添加这样的子视图的方式:
CommentView *commentView = [[CommentView alloc]initWithFrame:CGRectMake(0, 0, 320, 81)];
commentView.lUserName.text = comment.user.name;
[self.vComments addSubview:commentView];
Run Code Online (Sandbox Code Playgroud)
现在它按照我的预期工作.
我仍然不完全理解为什么有很多例子在我的问题中以及为什么它对我不起作用...我希望我的代码可以节省时间给某人...
| 归档时间: |
|
| 查看次数: |
1634 次 |
| 最近记录: |