-1

からのコンテンツがたくさん含まれてViewControllerいますが、スクロールビューが機能していません。 ScrollViewIB

- (void)viewDidLoad
{
    [super viewDidLoad];
/*
 *  configure a bunch of label, text ,images and views from IB
*/

    UIScrollView* scrollView = (UIScrollView*)self.view;
    scrollView.scrollEnabled = YES;
    scrollView.contentSize = CGSizeMake(320, 2000);
}

コンテンツを一番下まで表示できますが、スクロールできません。それが何かを意味する場合、これViewControllerTabBar

4

1 に答える 1

2
  1. スクロール ビューをスクロールするには、そのフレーム サイズをコンテンツ サイズよりも小さくする必要があります
  2. プログラムでscrollView FROMコードを追加しましたが、Xcodeのストーリーボードまたはnibファイルで追加することについて話しているようです
  3. 追加する場合は、次のコードを追加する必要があるコードを考えてください

[self.view addSubView:scrollView];

ここに一例があります

@interface ImageScrollView ()
    @property (nonatomic, strong) UIScrollView *scrollView;
    @property (nonatomic, strong) UIPageControl *pageControl;
@end

-(void) baseInit {
    // Scroll View - Full frame width
    _scrollView = [[UIScrollView alloc] init];
    _scrollView.frame = self.frame;
    _scrollView.delegate = self;

    // ImageView - Full frame width
    CGFloat width = self.frame.size.width;
    CGFloat height = self.frame.size.height;

    int i = 0;
    int count = [imagesArray count];
    for (i = 0; i < count; i++) {
        UIImage *image = [UIImage imageNamed:imagesArray[i]];
        UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(i * width, 0, width, height)];
        [imageView setImage:image];
        imageView.contentMode = UIViewContentModeScaleAspectFill;
        imageView.clipsToBounds = YES;
        imageView.tag = i+1;
        [_scrollView addSubview:imageView];
    }

    [_scrollView setContentSize:CGSizeMake(count * width,  height)];
    [_scrollView setFrame:CGRectMake(0, 0, width, height)];
    _scrollView.pagingEnabled = YES;
    _scrollView.showsHorizontalScrollIndicator = NO;

    pageControl.numberOfPages = count;
    pageControl.currentPage = 0;
     CGRect pageFrame = CGRectMake(5, 5, 50, 50);
    pageControl.frame = pageFrame;
    pageControl.backgroundColor = [UIColor redColor];

    [self addSubview:_scrollView];
    [_scrollView addSubview:pageControl];
}

ビューで baseInit 関数を呼び出すことを忘れないでください。この例は、ストーリーボードまたは nib ファイルにオブジェクトを追加する必要なく機能します

于 2013-09-02T01:24:31.590 に答える