0

フレームがiPhoneの画面よりわずかに狭いサファリページのスクロールビューを複製しようとしています。したがって、いくつかの提案によると、「clipView」(450x320 ポイント) 内にスクロールビュー (450x280 ポイント) を配置しています。

//viewController methods
-(void)viewDidAppear:(BOOL)animated{

CGRect pagingScrollViewFrame = self.clipview.frame;
pagingScrollViewFrame.size.width = 280;

NSLog(@"clipview h:%f e w:%f",self.clipview.frame.size.height,self.clipview.frame.size.width);
NSLog(@"scrollview h:%f e w:%f",pagingScrollViewFrame.size.height,pagingScrollViewFrame.size.width);
NSLog(@"center clipview :%@",NSStringFromCGPoint(self.clipview.center));

pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame];
NSLog(@"center scrollview:%@",NSStringFromCGPoint(pagingScrollView.center));
pagingScrollView.contentSize = CGSizeMake(pagingScrollViewFrame.size.width *3, pagingScrollViewFrame.size.height);

pagingScrollView.clipsToBounds = NO;
pagingScrollView.center = self.clipview.center;

    [clipview addSubview:pagingScrollView];
}

ここに画像の説明を入力

ご覧のとおり、scrollView の中心が 20 ポイント下にシフトされています ( {140, 232} )。私のビューコンテナの中心は{160, 232}です。

どこが間違っていますか?コンテンツ オフセット プロパティのようなものがありますか? この問題は Autolayout に関連していますか?

4

1 に答える 1

0

問題は次の行にあります。

pagingScrollView.center = self.clipview.center;

次のようにする必要があります。

pagingScrollView.center = CGPointMake(CGRectGetMidX(self.clipview.bounds), CGRectGetMidY(self.clipview.bounds));

スーパービューの中心をそのサブビューに割り当てるのはよくある間違いです。それらは異なる座標系にあります。

于 2013-03-26T15:57:14.663 に答える