接続されたページコントロールを使用して基本的なスクロールビューを作成しようとしていますが、コードでいくつかの問題が発生しました。私のviewDidLoadメソッドは次のようになります。
- (void)viewDidLoad{
[super viewDidLoad];
NSLog (@"View did load");
// Do any additional setup after loading the view, typically from a nib.
scrollView.delegate = self;
scrollView.pagingEnabled=YES;
NSArray *frames = [NSArray arrayWithObjects:[UIColor redColor], [UIColor greenColor], [UIColor blueColor], nil];
for (int i = 0; i < frames.count; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
UIView *subview = [[UIView alloc] initWithFrame:frame];
subview.backgroundColor = [frames objectAtIndex:i];
[self.scrollView addSubview:subview];
NSLog (@"Looped, i = %i color = %@", i, [frames objectAtIndex:i]);
}
self.scrollView.contentSize = CGSizeMake(scrollView.frame.size.width * frames.count, scrollView.frame.size.height);
NSLog(@"The width is: %f", self.scrollView.frame.size.width);
}
問題は、ビューに追加しようとしている色付きのフレームが表示されないことです(最初のフレームも表示されません)。ARCを有効にしていない場合は、各ループの最後でCGRectフレームを解放していましたが、実際にはARCでそれ自体を実行する必要があります。
シミュレーターと実際の電話の両方でアプリを実行すると、下部にUIPageControlドットが付いた黒い画面が表示されます。ScrollViewを指でスワイプしても何も起こりませんが、片側に非常に遠くに引くと、pageControlは次の「ドット」に移動します。
最後のNSLogセンテンスは常に0.0000を出力します。これは、どのビューもスクロールビューに追加されていないことを示します。
すべての助けは非常にありがたいです:)