1

UIScrollViewと を使用して水平スクロールを作成しようとしていますUIImageView。画像ビューの幅は 1280px (4 ページ) で、scrollView の幅は 320px です。自動レイアウト モードなしでこのコードを使用すると、スクロールが正しく機能します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.scrollView.scrollEnabled = YES;
    self.scrollView.showsVerticalScrollIndicator = NO;
    self.scrollView.showsHorizontalScrollIndicator = NO;
    CGRect imageFrame = self.helpImageView.frame;
    NSLog(@"imageFrame w: %f",self.helpImageView.frame.size.width); //prints 1280.000000
    [self.scrollView setContentSize:imageFrame.size];
    NSLog(@"contentSize w: %f",self.scrollView.contentSize.width); //prints 1280.0000
    NSLog(@"scrollFrame w: %f",self.scrollView.frame.size.width); //prints 320.00
}

しかし、Autolayout を使用したい場合、このコードは同じ結果を返しますが、UIScrollViewスクロールしません。どうして???私はこれらの制約を使用しています:

Bottom space to: ScrollView Equals:32.0
Leading space to: ScrollView
Trailing space to: ScrollView
Top Space To: SCrollView Equals:-20.0
Bottom Space To: View Equals:-12.0
Leading space to: View
Top Space To: View Equals:427.0
Trailing space to: View
4

1 に答える 1

0

横スクロールビューも作成したので、初期値は以下の通りです。

CustomScrollView.m :

self.showsHorizontalScrollIndicator = NO;
self.showsVerticalScrollIndicator = NO;
self.scrollsToTop = NO;
self.delegate = (id)self;
self.contentSize = CGSizeMake(320.0 * PAGE_COUNT, 420.0);
self.pagingEnabled = YES;
self.bounces = NO;

for (int i = 0; i < PAGE_COUNT; i++) {
//  NSString *str = [NSString stringWithFormat:@"%@%d%@", @"foo", i, @".png"];
    UIImageView * imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:str]];
//  imgView.frame = CGRectMake(320.0f * i + 10, 0, 300, 300 * 1.33);
    [self addSubview:imgView];
}

このプロジェクトでは、PAGE_COUNT=4 で、4 つの画像は foo0.png ~ foo3.png です。

于 2013-02-04T01:31:48.753 に答える