【发布时间】:2014-12-29 05:21:25
【问题描述】:
我创建了一个应用程序,其中有一个tableview。我想在某些情况下移动view,所以我更改了约束,它工作正常,但是当我再次尝试更改约束时,view 没有移动。
我的代码如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UINib *nib = [UINib nibWithNibName:@"GoalDetailsCustomCardCell" bundle:nil];
[goalDetailsTableView registerNib:nib forCellReuseIdentifier:@"CardCell"];
GoalDetailsTableViewCell *cell = [goalDetailsTableView dequeueReusableCellWithIdentifier:@"CardCell"];
if(cell == nil)
{
cell = [goalDetailsTableView dequeueReusableCellWithIdentifier:@"CardCell"];
}
if([self.swipedRowArray containsObject:indexPath])
{
NSLog(@"%f", cell.cardDetails.frame.origin.x);
NSLog(@"%f", cell.cardDetails.frame.size.width);
NSLog(@"%f", cell.cardDetails.frame.size.height);
cell.cardDetails.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary *contentDictionary = @{@"cardDetails":cell.cardDetails, @"actionReminderCard":cell.actionCardReminder};
[cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(-314)-[cardDetails]" options:0 metrics:nil views:contentDictionary]];
[cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[actionReminderCard]" options:0 metrics:nil views:contentDictionary]];
NSLog(@"%f", cell.cardDetails.frame.size.width);
NSLog(@"%f", cell.cardDetails.frame.size.height);
}
else
{
NSLog(@"%f", cell.cardDetails.frame.origin.x);
NSLog(@"%f", cell.cardDetails.frame.size.width);
NSLog(@"%f", cell.cardDetails.frame.size.height);
cell.cardDetails.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary *contentDictionary = @{@"cardDetails":cell.cardDetails, @"actionReminderCard":cell.actionCardReminder};
[cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[cardDetails]" options:0 metrics:nil views:contentDictionary]];
[cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-330-[actionReminderCard]" options:0 metrics:nil views:contentDictionary]];
NSLog(@"%f", cell.cardDetails.frame.size.width);
NSLog(@"%f", cell.cardDetails.frame.size.height);
}
在上面的代码中,如果部分工作正常,当涉及到 else 时,我尝试将约束更改为 xib 中设置的默认约束,但它不起作用。它显示的视图与我之前更改约束时相同。
提前致谢。
【问题讨论】:
-
你必须再次更新新的约束
-
@SR Nayak - 你能帮我解决旧的限制吗
标签: ios objective-c iphone nslayoutconstraint