私が持っているもの: 基本的に、水平スクロールビューで表示される UIView のコレクションがあります。UIScrollView ではページングが有効になっており、各項目は全画面表示ではないため、これに基づいて前のビューと次のビューの一部を見ることができます。 各ビューには、それ自体に削除ボタンがあります。
必要なもの: サブビューの 1 つを削除した後、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 から削除し、今のところこのメソッドを実行します。