我有一个按钮,通过手动设置的约束以编程方式布局和定位。然后,我尝试通过调用removeFromSuperview
从视图中删除该按钮。移除按钮会导致位于按钮下方的集合视图子视图丢失它在scrollview
中的位置,并将其自身对齐到所有其他对象后面的superview
的顶部。我希望集合视图可以简单地移动到按钮一旦按钮的位置,并且它的约束已从视图中删除。 我缺少什么?
按钮创建:
aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton addTarget:self
action:@selector(buttonPressed:)
forControlEvents:UIControlEventTouchUpInside];
[aButton setTitle:@"Expand" forState:UIControlStateNormal];
[aButton setTranslatesAutoresizingMaskIntoConstraints:NO];
[self addSubview:aButton];
删除按钮:
- (void)buttonPressed:(UIButton *)sender{
NSLog(@"Pressed");
[aButton removeFromSuperview];
}
垂直定位(detailOfLocation是集合视图):
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[locationImageContainer(213)][locationTitle][locationDescription][aButton][detailOfLocation]|"
options:0
metrics:0
views:viewArranging]];
[编辑]
删除按钮似乎也会禁用UIScrollView的滚动功能,UIScrollView是放置所有内容的超级视图。
答案 0 :(得分:1)
删除按钮后,你可能会有一些不足的约束,所以也许你应该补偿那些。例如,您可能希望在locationDescription
和detailOfLocation
之间添加约束,因为删除按钮后它们的垂直位置会变得模糊不清。滚动视图滚动也可能与约束相关。看看这个answer