以编程方式自动布局:更新视图的垂直空间,移动所有内部视图

时间:2014-08-06 06:32:04

标签: ios objective-c iphone autolayout

我正在尝试更改包含按钮和进度条的视图的“垂直空间”约束。下图显示了约束:

enter image description here

按钮在视图中水平和垂直对齐:

enter image description here

它被引用为IBOutlet,并以这种方式在viewDidLoad中以编程方式进行了更改:

// Constraing originally set to 15.0 in Interface Builder
if (isiPhone5) {
    [SSLayoutConstraintButtonVSpace setConstant:0.0f];
} else {
    [SSLayoutConstraintButtonVSpace setConstant:15.0f];
}

一旦我使用iPhone 5运行应用程序,更改就完成了,显然它似乎有效。但是,如果我单击按钮,则ID不会响应。在设置新约束之前,按钮单击区域似乎仍保留在原始位置。

有人知道那里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

来自Apple开发者论坛的John Griffith向我提示了我的视图层次结构中可能存在的错误,并且他是完全正确的。

我的表格视图单元格在按约束移动时裁剪按钮。改变它的背景色直接确认了它。

因此,保持条件约束并以下列方式调整表视图单元的大小可以解决问题:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (isiPhone5) {
        return 500.0f;
    } else {
        return 460.0f;
    }
}