0

我在自定义 UITableViewCellself.username, self.postText, self.containerView中有三个视图:另外两个的超级视图在哪里self.containerView。我希望它像这样布置:

Contrainer = self.containerView
-----------------------------
|.....5pt-margin............|
| [self.username]           |
| [self.postText]*          |
|.....5pt-margin............|
---------------------------- 
* Posttext can have a dynamic height - and the superview's height should adapt dynamically  based on this height

我在单元格的 init 方法中尝试了以下 NSLayoutConstraint:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        [...]
        NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(self.username,    self.postText, self.containerView);
        [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(5)-[self.username]-[self.postText]-(5)-|" options:0 metrics:nil views:viewsDictionary];
    }
    return self;
}

它目前在没有任何日志的情况下崩溃。正确的 NSLayoutConstraint 应该如何看?

4

1 回答 1

2

当您传递字符串参数时,constraintsWithVisualFormat:您需要传递类似 ASCII 艺术的视觉格式字符串,因此在@"V:|-(5)-[self.username]-[self.postText]-(5)-|"您创建的格式中self.usernameself.postText应该是 id 类型。

于 2013-05-10T15:12:37.430 回答