【发布时间】:2015-10-30 10:57:47
【问题描述】:
我的问题有点难以描述:
我正在开发一个笔记应用程序。我的“创建新笔记” - 屏幕包含一个垂直堆栈视图,用于显示与新笔记关联的待办事项。 在这个 stackview 下方有一个 UIView,如果用户愿意,可以在其中添加提醒:
stackview 包含特定数量的子视图。我在构建用户界面时不知道这个数量,而是在运行时以编程方式添加所有子视图。 我希望提醒视图始终位于我的堆栈视图下方。所以我添加了一个顶部空间约束。
但在以编程方式向堆栈视图添加项目(并因此扩大)时,此约束似乎没有影响。
编辑: 这是我添加子视图的代码:
[_todoContainer.subviews makeObjectsPerformSelector: @selector(removeFromSuperview)];
int y = 0;
for (NoteTodoEntity* entity in _note.todos) {
NotinaryTodoView* view = [[[NSBundle mainBundle] loadNibNamed:@"NotinaryTodoView" owner:self options:nil] objectAtIndex:0];
view.frame = CGRectMake(_todoContainer.frame.origin.x, y, _todoContainer.frame.size.width, 40);
[view layoutIfNeeded];
y+=40;
view.currentEntity = entity;
[view.todoDeleteButton addTarget:self action:@selector(todoActionPressed:) forControlEvents:UIControlEventTouchUpInside];
[_todoContainer addSubview:view];
}
[self.view layoutIfNeeded];
【问题讨论】:
-
显示添加子视图的代码
-
@Wain 我编辑了我原来的问题
-
在循环之后尝试
[self.view layoutIfNeeded],让整个视图有机会更新 -
@Wain 我添加了 [self.view layoutIfNeeded];不幸的是,它没有帮助(我再次编辑了问题以反映更改)
-
它是唯一有问题的视图,它下面的视图还可以吗?他们被固定在什么地方?将该视图也添加到堆栈视图中...
标签: ios objective-c autolayout uistackview