5

私はiPad開発者の初心者ですが、

アプリケーションで 1 つの登録フォームを作成しました。アプリケーションをPortraitモードで表示すると、フォーム全体をスクロールLandscapeせずに表示できますが、同じフォームをモードで表示すると、ページの下部にある部分が表示されません。 、そのためには、下部を見るためにスクロールが必要です。

s:.h置換時のファイル内

@interface ReminderPage : UIViewController{
...
...
}

:UIViewController:UIScrollView

.mそして、このようにファイルにラベルを追加すると、

UILabel *Lastpaidlbl = [[[UILabel alloc] initWithFrame:CGRectMake(70 ,400, 130, 50)]autorelease];
    Lastpaidlbl.backgroundColor = [UIColor greenColor];
    Lastpaidlbl.font=[UIFont systemFontOfSize:20];
    Lastpaidlbl.text = @"Lastpaid on :";
    [self.view addSubview:Lastpaidlbl];

タイプ classname のオブジェクトにプロパティ ビューが見つかりませんでした。 ビューにラベルを追加できません。

どんな助けでも大歓迎です。

4

5 に答える 5

6

問題は、画面上のすべてのコンポーネントを UIView ではなく UIScrollView 内に配置する方法を実際に尋ねているようです。Xcode 4.6.3 を使用すると、次の簡単な方法でこれを達成できることがわかりました。

  • Interface Builder で、メイン UIView 内のすべてのサブビューを選択します。
  • Xcode のメニュー項目 "Editor | Embed In | Scroll View" を選択します。

最終結果は、既存のメイン UIView に埋め込まれた新しいスクロール ビューでした。以前の UIView のすべてのサブビューは、同じ配置で UIScrollView のサブビューになります。

于 2013-09-19T12:48:08.147 に答える
4

UIViewController を UIScrollView に置き換えたい場合は、コードを少しリファクタリングする必要があります。表示されるエラーはその一例です。

構文:

[self.view addSubview:Lastpaidlbl];

selfUIViewController の場合は正しいです。に変更したため、次のようUIScrollViewにする必要があります。

[self addSubview:Lastpaidlbl];

コードにこのような変更を加える必要があり、いくつかの問題に直面することになります。

別のアプローチは次のとおりです。

  1. UIScrollView をインスタンス化します (派生ではありません)。

  2. UIView (定義したものなど) をスクロール ビューに追加します。

  3. スクロールビューの を定義して、contentSize持っている UIView 全体を含めます。

スクロール ビューは、既存のビューのコンテナーとして機能します (コントロールをスクロール ビューに追加してから、スクロール ビューを self.view に追加します)。このようにして、既存のコントローラー内に統合できます。

      1. UIScrollView* scrollView = <alloc/init>

      2. [self.view addSubview:scrollView]; (in your  controller)

      3. [scrollView addSubview:<label>]; (for all of your labels and fields).

      4. scrollView.contentSize = xxx;

後者のアプローチははるかに簡単になると思います。

于 2012-07-06T07:26:02.043 に答える
0

すべての UIComponents を UIScrollview に配置すると、スクロールが開始されます。

コンテンツサイズをご覧ください。端末の向きに合わせて変更してください。

于 2012-07-06T07:16:29.833 に答える
0

をサブクラス化しているため、(スクロールビューの)既にビューであるためUIScrollView、ありません。スクロールビューをサブクラス化する必要はありません。コンポーネントをivarスクロールビューに埋め込んで設定するだけです(あなたの場合、デバイスが横向きモードのときにスクロールを有効にする必要があります)。インターフェイスビルダーでは、選択した要素をワンクリックで埋め込むことができます.Editor-> Embed in-> scrollview.self.viewselfcontentSize

于 2012-07-06T07:24:55.197 に答える
0

最初にスクロールビューを作成します

 UIScrollView *  scr=[[UIScrollView alloc] initWithFrame:CGRectMake(10, 70, 756, 1000)];
    scr.backgroundColor=[UIColor clearColor];
    [ self.view addSubview:scr];

2番目

変化する [self.view addSubview:Lastpaidlbl];

      to

[scr addSubview:Lastpaidlbl];

三番

セットの高さはコンテンツによって異なります

UIView *view = nil;

 NSArray *subviews = [scr subviews];


 CGFloat curXLoc = 0;

    for (view in subviews)
    {
        CGRect frame = view.frame;
        curXLoc += (frame.size.height);
    }
       // set the content size so it can be scrollable
    [scr setContentSize:CGSizeMake(756, curXLoc)];

ついに

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Override to allow orientations other than the default portrait orientation.
    if (interfaceOrientation==UIInterfaceOrientationLandscapeLeft || interfaceOrientation==UIInterfaceOrientationLandscapeRight) {
        self.scr.frame = CGRectMake(0, 0, 703,768);    

        } else {
        self.scr.frame = CGRectMake(0, 0, 768, 1024);
        }


    return YES;
}
于 2012-07-06T07:40:43.800 に答える