これが理にかなっていることを願っています...複数のUIScrollViewを格納しようとしているNSMutableArrayがあります。各UIScrollViewには複数の画像があり、最終的な目標は、ユーザーがカテゴリに対して垂直にスワイプできるようにすることです(それぞれUIScrollView のインスタンス) と、そのカテゴリの各画像 (UIImageView の各インスタンス) の水平方向。今のところ、このコードが機能するまでは、1 つの画像で 1 つの UIScrollView を作成し、それを scrollViewManager に追加しています。これですべてが正しく追加されたように見えますが、この機能を終了するとゲーム オーバーになります。私の配列は空です。理解できない。配列に追加するときに、ある種のディープ コピーを実行して、配列が破壊されないようにする必要がありますか。明日目が覚めたらわかるかもしれないけど、とりあえず、目の前にあるものすべてを壊したい。ありがとう、
編集:詳細が不足していて申し訳ありません。これはかなり遅れて投稿しました。私のプロジェクトはARCを使用しているため、scrollViewをどこにもリリースしていません。私のヘッダーファイルでの scrollViewManager の宣言は次のとおりです。
@property (nonatomic, retain) NSMutableArray *scrollViewManager;
scrollView を取得するために使用するコードは次のとおりです。
UIScrollView *test = (UIScrollView*) [self.scrollViewManager objectAtIndex: 0];
scrollView と配列を初期化するコードは次のとおりです。
scrollViewManager = [[NSMutableArray alloc] initWithCapacity: 1];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[scrollView setBackgroundColor:[UIColor blackColor]];
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollView.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview
scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
NSString *imageName = @"pic1.png";//[NSString stringWithFormat:@"pic%d.jpg", i+1];
UIImage *image = [UIImage imageNamed:imageName];
UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
// setup each frame to a default height and width, it will be properly placed when we call "updateScrollList"
CGRect rect = imageView.frame;
rect.size.height = 400;
rect.size.width = 300;
imageView.frame = rect;
imageView.tag = 1; // tag our images for later use when we place them in serial fashion
[scrollView addSubview:imageView];
[self.scrollViewManager addObject: scrollView];