在以编程方式添加时,NSLayoutConstrains无法正常工作

时间:2015-09-14 13:16:00

标签: ios objective-c uitableview

我想以编程方式在UITableViewCell中添加UITextField,这个文本字段应该在所有iOS设备上都有一致的视图(8个像素填充来自所有角落,即cell.contentView)。

所以我编写了代码片段:

UITableViewCell * cell2 = [tableView         dequeueReusableCellWithIdentifier:@"startLocation"];

    if (cell2 == nil)
    {
        cell2 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                       reuseIdentifier:@"startLocation"];
    }

    UITextField *endLoc = [[UITextField alloc] initWithFrame:CGRectMake(8,8,340,28) ];

    endLoc.placeholder = @"Start Location";

    [cell2.contentView addSubview:endLoc];

    [cell2.contentView setTranslatesAutoresizingMaskIntoConstraints:NO];

    NSLayoutConstraint *textLeftConstraint = [NSLayoutConstraint constraintWithItem: endLoc attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:cell2.contentView attribute:NSLayoutAttributeLeading multiplier:1.0f constant:8.0f];


    NSLayoutConstraint *textRightConstraint = [NSLayoutConstraint constraintWithItem: endLoc attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:cell2.contentView attribute:NSLayoutAttributeTrailing multiplier:1.0f constant:8.0f];

    [cell2.contentView addConstraint:textLeftConstraint];
    [cell2.contentView addConstraint:textRightConstraint];

    return cell2;

我已在tableview委托方法cellForRowAtIndexPath

中添加了此片段

这是我到目前为止所知道的代码。我遗失了什么?

我想得到的最终输出如下所述:

两个文本字段 - 开始位置和开始时间。 起始位置的约束:从左侧8px,应该距离开始时间20 px(宽度应大于70%)。 开始时间的约束:从开始位置文本字段开始剩余20px,从右角开始应为8px(宽度应约为20-25%)。

此单元格视图应在所有设备上保持一致。开始位置文本将从左角放置8px并占据至少70%的宽度。 任何帮助。

0 个答案:

没有答案