1
  • 我有一个包含 3 个subivews名为view A, view B,的视图view C
  • 当我删除子视图时,意味着我需要自动设置边距以进行调整。
  • 当我删除view A手段时,剩余views的必须自动向上移动。

注意:不在autolayout. 请告诉它如何可能在automask

在此处输入图像描述

4

2 回答 2

1

它不会自动工作,您需要编程一下,您可以尝试以下代码来实现这一点,

//Adding Delete Tap Gesture
-(void)addGestureToSubViews{
    for(UIView *view in parent.subviews){
        UITapGestureRecognizer *gesture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(deleteAction:)];
        [view addGestureRecognizer:gesture];
    }
}


-(IBAction)deleteAction:(UITapGestureRecognizer *)sender{
    UIView *view=sender.view;

    [UIView animateWithDuration:.3 animations:^{
        CGRect rect=view.frame;
        rect.origin.x=view.superview.frame.size.width;
        view.frame=rect;
    } completion:^(BOOL finished) {
        [self reArrangeSuperView:view.superview withDeletedViewFrame:view.frame];
        [view removeFromSuperview];

    }];

}

-(void)reArrangeSuperView:(UIView *)superView withDeletedViewFrame:(CGRect)frame{

    for(UIView *view in superView.subviews){
        CGRect rect=view.frame;

        if(rect.origin.y>frame.origin.y){
            rect.origin.y=frame.origin.y;
        }

        [UIView animateWithDuration:.3 animations:^{
            view.frame=rect;
        }];

    }
}

我希望它有所帮助。

干杯。

于 2014-07-10T08:05:43.803 回答
0

为此,在属性检查器中,您必须隐藏视图以及要向上推的视图,您应该设置视图的 -contentoffset 属性。

于 2014-07-10T07:52:19.117 回答