1

ユーザーがカバー ビュー レイアウトから書籍を選択できるように、iBook のメイン画面を作成する必要があります。

UIImageView オブジェクトを配置するために、垂直 UIScrollView レイアウトを使用することを考えています。それは良いアプローチですか?

もう 1 つの大きな問題は、ユーザーが本を削除し、UIImageView オブジェクトが画面から削除されたときに、残りの UIImageView オブジェクトを再編成してアニメーションで移動させる方法です。

最新の書籍リストを使用して UIScrollView を再描画することは許容される可能性がありますが、UIImageview オブジェクトがシフトおよび移動することを示すアニメーションはありませんか?

問題を解決するための良いアイデアはありますか?

4

1 に答える 1

1

UIImageViews を含む NSMutableArray を持つ UIScrollView を持つことができるので、本を削除/追加するときは、配列から削除/追加し、変更のオブザーバーを使用して、必要に応じてアニメーションで uiimagesviews を再配置します。

例:

-(void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
  if  (object == self && [keyPath isEqualToString:@"ArrayofBooks"]) {
     //Do animations here as needed
  }
}

-(id)init {
  //...Previous init
  ArrayofBooks = [[NSMutableArray alloc] init];
  [self addObserver:self forKeyPath:@"ArrayofBooks" options:0 context:NULL];
  //...other init needed
}

これは UIScrollView で行う必要があります。Mutable 配列を登録し、その変更に対してオブザーバーを設定すると、最初のメソッドがオブザーバーによって呼び出され、あなたが行うことになります。

編集: 重要! オブジェクトを追加/削除するときは、次の方法で行う必要があります。そうしないと、オブザーバーに表示されません

[[self mutableArrayValueForKey:@"ArrayofBooks"] addObject:newBook];

[[self mutableArrayValueForKey:@"ArrayofBooks"] removeObject:newBook];
于 2011-05-15T04:08:33.337 に答える