我所拥有的:基本上我收集了在水平滚动视图中呈现的 UIView。UIScrollView 启用了分页,并且每个项目都不是全屏的,因此我可以基于此查看上一个和下一个视图的一部分。 每个视图本身都有删除按钮。
我需要什么:我需要找到一个好主意,在删除一个子视图后为重新加载 UIScrollView 内容设置动画。正如我所想,将有 4 种不同类型的删除:1. 删除最后一个视图 2. 删除第一个视图 3. 删除中间视图 - 最难的一个 4. 删除唯一的视图 - 最简单的一个,只是视图消失的动画
我需要一些建议/解决方案。谢谢, 迈克尔
编辑:
好的,我还没有完全实现它。
这里是重载方法:
- (void)loadScrollView{
for(UIView* view in [_scrollView subviews])
{
[view removeFromSuperview];
}
CGRect frame = self.scrollView.frame;
frame.origin.x = 0;
frame.origin.y = 0;
int i = 0;
_scrollView.clipsToBounds = NO;
_scrollView.pagingEnabled = YES;
_scrollView.showsHorizontalScrollIndicator = NO;
for(MPContact* contact in self.items)
{
frame.origin.x = self.scrollView.frame.size.width*i;
MyView *view = [[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil] objectAtIndex:0];
[view setFrame:frame];
i++;
[view.nameAndSurnameLabel setText:@"view text"];
[view setDelegate:self];
[self.scrollView addSubview:view];[self.viewsArray addObject:view];
}[self.scrollView setContentSize:CGSizeMake(frame.size.width*[self.items count], frame.size.height)];}
每个 MyView 都有带委托的删除按钮,委托从 viewsArray 中删除视图并暂时运行此方法。