2011-08-01 6 views
0

上から下へ私はUIView、UIScrollView、UIImage、UILabel、UITextView、およびUIButtonを持っています。非常に高いページをスクロールするためのuiscrollview

UIScrollViewの最上位の背後には、垂直なコンテンツ全体がスクロールするという理由があります。

UITextViewはUIScrollViewのサブクラスなので、本当に代用する必要があるのは、UITextView(5th down)です。そして、この代用者は、フォーマットされたテキストの非常に高い列に対応しなければなりません。

私が望ましくないものは、ページの中央にあるスクロール可能なオブジェクトです。私はページ全体をスクロール可能にしたい。

もう1つ...テキストのこの高さの列のすぐ下にボタンがありますのでご注意ください。

ジョン・ラヴ

答えて

1

ありがとうございました! AshackとPentagp。私は、全体のUIViewのは一番下にUILabel、UIImage、UITextViewと UIButtonが含まれてい

...私は最終的にIBは、すべてのGUIを使用することができるという考えを放棄し、ダンプしなければならなかったと思います。

ここでの目標は、このコンテンツ全体をスクロール可能にすることでした。 stackoverflow.comの君たちへ

ありがとう:

それはIB、ドラッグを使用してUIScrollViewの
  • の具体的なタイプだからUITextView
    のためにIB、未チェック "を有効スクロール" を使用して
    1. UIViewにUIScrollViewを適用し、サイズを一致させ、 は、UIScrollViewがすべてのサブビューを囲むことを保証します。
    2. UITextViewのheight = contentSizeにします。高さへ

    し、このUITextView以下、おかげiphonedevsdk.comへ

  • 移動UIButton:

    1. が に最上位UIScrollViewののcontentSize.height調整が含ま再配置されたUIButtonの高さ

    問題を解決しました!

  • 0

    あなたの質問は非常に具体的ではありませんが、私はあなたがスクロールしないテキストビューを作成する方法を求めていると思うし、テキストに合わせて拡張されます。あなたはUILabelでこれを行うことができますが、それは複数のステップのプロセスです。スクロールを無効にし、frameSizeに合わせてcontentSizeを設定すると、UITextViewでも同じことができます。

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100,100,100,100)]; 
    label.font = [UIFont systemFontOfSize:24]; 
    NSString *yourTextString = @"your text"; 
    CGSize maximumLabelSize = CGSizeMake(100, 500); 
    CGSize expectedLabelSize = [yourTextString sizeWithFont:label.font 
            constrainedToSize:maximumLabelSize 
            lineBreakMode:yourLabel.lineBreakMode]; 
    CGRect labelFrame = label.frame; 
    labelFrame.size.width = expectedLabelSize.width; 
    labelFrame.size.height = expectedLabelSize.height; 
    label.frame = labelFrame; 
    

    次に、ラベルのフレームを使用して、ボタンの位置とその下のすべての要素を設定します。

    +0

    私は10個の異なるUIViewControllerでタブコントローラーアプリケーションを使っています。すべて10は、それぞれ10のIB内で設定したタグIDに基づいてすべてのインスタンスメソッドを提供する1つのスーパービューを持っています。私の究極の目標は、スーパーロングスクロール可能なUIView(画像、テキスト、ボタン付き)各UIViewControllerとそのUIViewの内容をIB内で設定する必要があります。私はそれを避けることができないかもしれませんが、各UIViewのコンテンツをプログラムで設定することを恥ずかしがります。 –

    +0

    液体レイアウトのようなものを実現しようとしているのであれば、プログラムで行う必要があります。コンテンツ用のUIWebViewおよびHTML/CSS。可変の高さを持つ最初の要素から始めて、上で説明した方法を使用して、自分の答えを使用してレイアウトをプログラムで調整する必要があるようです。 – ashack

    +0

    ちょっと別のアイデアがありました(StackOverflowの別のリーダーに基づいています...プロジェクトにスタイル付きのテキストファイルを埋め込んでUIViewにロードするとどういうことができますか?つまり、私のスーパービューのviewDidLoad私のスーパービューの-viewDidLoadを呼び出す前に私のUIViewの-viewDidLoadは1つのことを行い、その1つはNSStringの形式で一意のviewControllerIDを割り当てることです* –

    1

    あなたの問題を理解していれば、ネストされたスクロールは不要です。 したがって、yourTextView.scrollEnabled = NOを設定します。必要に応じて、ボタンの位置を変更終わり

    yourTextView.frame = CGRectMake(yourTextView.frame.origin.x, 
                yourTextView.frame.origin.y, 
                yourTextView.frame.size.width, 
                yourTextView.contentSize.height + (yourTextView.contentSize.width > yourTextView.frame.size.width ? (yourTextView.contentSize.width * yourTextView.contentSize.height/(yourTextView.contentSize.width - yourTextView.frame.size.width)) - yourTextView.contentSize.height :0))); 
    
    /* 
    If textView is dynamically filled, you have to check if yourTextView.contentSize.width is bigger than yourTextView.frame.size.width then add proportionally what is remaining to the height. 
    */ 
    

    //はプログラムで私たちのペン先のコンテンツの高さにyourTextViewフレームの高さを設定し、すべてのテキストを表示するためにも

    でそれを行います

    あなたに役立つことを望む...

    +0

    私は10個の異なるUIViewControllerを持つタブコントローラーアプリケーションで作業しています。 10には、それぞれ10のIB内で設定したボタンのタグIDに基づいてすべてのインスタンスメソッドを提供する1つのスーパービューがあります。私の究極の目標は、スーパーロングスクロール可能なUIView(画像、テキスト、ボタン付き)各UIViewControllerとそのUIViewの内容はIB内で設定する必要があります。私はそれを避けることができないかもしれませんが、私はそれぞれのUIViewのコンテンツをプログラムで設定することを恥ずかしがります。 –

    +0

    できませんでしたur superviewには、レイアウトを管理するメソッドがあります:UITextViewであるサブビューを展開し、後に配置されたサブビューを変換します。 View Controller viewDidLoadが呼び出されたら、layoutManagementメソッドを呼び出します。 – Pentagp

    +0

    あなたの最後のコメントは本当に魅力的です... –

    関連する問題