2012-02-29 11 views
2

私は数ヶ月間iOSで作業していましたが、かなり簡単なようなもののために何時間も何時間も壁に頭を向けています。 iPadアプリのXcodeでマスターディテールテンプレートを使用しました。私は、ディテール部分をスクロール可能にして、どちらの方向でもフレーム内に表示されている内容の下にコンテンツを表示したい。私は、viewWillAppear、viewDidLoad、loadViewのDetailViewControllerでscrollviewsを追加する多数の組み合わせを試してきました...そして最高のものは、スクロールバーを表示して私に示すように最上位レイヤーのスクロール可能なビューのようですscrollView.contentSizeを正しくパンしていましたが、実際のビューは移動しません。フィールドは編集できません。ここに私のviewDidAppearは現状のままです。あなたはNSLogsで見ることができるように、私はビューのスタックを理解しようとしています。ログの前に行のコメントを外すと、スクロールバーが完全に失われます。マスターディテールアプリでスクロール可能なディテールビューを作成する方法

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)]; 
    scrollView.contentSize = CGSizeMake(2048, 2048); 

    UIView *parentView = [[UIView alloc] init]; 

    parentView = [[self view] superview]; 

    [[parentView superview] addSubview:scrollView]; 

    //[scrollView addSubview:[self view]]; 

    NSLog(@"%@", [parentView superview]); 
    NSLog(@"%@", parentView); 
    NSLog(@"%@", [super view]); 
    NSLog(@"%@", [self view]); 

    [scrollView setDelegate:self]; 

} 

このシナリオでは、UIScrollViewを正しく実装する方法に関するヒントやヒントをお読みいただき、誠にありがとうございます。

答えて

1

IBにUIScrollViewを追加する必要があります。既存のビューとコントロールをすべてスクロールビューのサブビューに移動してください。また、スクロールビューをIBOutletにリンクする必要があるため、View Controllerでコンテンツサイズを設定できます。

+0

簡単

Self.view:

あなたの階層は次のようになります。私はIBを使う代わりにそれをプログラムしようとすることでそれを難し​​くしていたと思う。 1つの "副作用"私は今、私のビューは実際にUIControlだったので、私はUITextFieldの外に触れたときにそれはキーボードを却下するだろうということです。私とUIScrollViewを共存させることはできないようですね。 –

+0

'UIScrollView'をサブクラス化し、' touchesEnded'をオーバーライドしてビュー内のタッチを検出できます。 – edc1591

0

メインビューのスーパービュー(あなたは誤って所有権を取ろうとしましたが(それはとにかくNULLにする必要があります))の周りにuiscrollviewをラップしようとする代わりに、フルサイズのサブビューにUI要素を集めて、その周りのscrollview?はるかに簡単だろう。 - (contentSizeセット付き)> ScrollView - >スクロールする必要がある要素を含むのUIView - 十分>さまざまなUI要素

関連する問題