0

IBにビューを追加しました。このビューにラベルがあります。ラベルの高さは、保持しているテキストに基づいて実行時に変化します。次に、ラベルサイズが変化すると、UIViewの高さを超えてしまうので、スクロールビューを追加します。フルラベルを表示するには、このビュー。このようなスクロールビューを追加しました...

        CGRect scrollViewFrame = CGRectMake(0, 0, 320, 460);
        UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
        CGSize scrollViewContentSize = CGSizeMake(self.view.frame.size.width, 
                                                  (self.view.frame.size.height + 1000));
        [scrollView setContentSize:scrollViewContentSize];
        [self.view addSubview:scrollView];

このスクロールビューがビューに追加された後、下にスクロールしてもビューが下に移動しません。私はここで何か間違ったことをしていますか...

あなたの助けに感謝します。

4

4 に答える 4

2

scrollViewがビューのサブビューである場合、scrollViewをスクロールしてもビューは移動しません。スクロール時にビューを移動する場合は、その逆である必要があります(ビューはscrollViewのサブビューである必要があります)。したがって、たとえば、スクロールする必要のあるUILabelを持つUIViewがある場合、ビューの階層は次のようになります。

UIView(self.view)-> UIScrollView(scrollView)-> UIView-> UILabel

または、UILabelを保持するためにUIViewは実際には必要ないため、UILabelをUIScrollViewのサブビューとして追加するだけで済みます。

UIScrollViewは、その中のコンテンツのみをスクロールします。

于 2012-10-12T05:42:16.803 に答える
1

このコードのように試してください..最初に、次のコードのように新しいビューを取得UIViewして追加します..フローのように..UILable

    CGRect scrollViewFrame = CGRectMake(0, 0, 320, 460);
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:scrollViewFrame];
    CGSize scrollViewContentSize = CGSizeMake(self.view.frame.size.width, 
                                              (self.view.frame.size.height + 1000));
    [yourView addSubview:yourLable];
    [scrollView addSubview:yourView];
    [scrollView setContentSize:scrollViewContentSize];
    [self.view addSubview:scrollView];

これがお役に立てば幸いです...

:)

于 2012-10-12T05:53:22.640 に答える
1

labelViewをScrollViewに追加する必要があります。あなたのコードから、あなたのスクロールビューがあなたのビューの中にあることがわかります。そのように考えてください:

あなたは車(あなたのビュー)を持っていて、それをスクロールさせたいので、車よりも長い道路(ScrollView)を与える必要があります。あなたがしているのは、車を道路の中に入れるべきときに道路を車の中に入れることです。

あなたはIBを使用しているので、私はあなたがすべきだと信じています:

  1. ScrollViewをビューに追加します(ビューはどこにも移動しません)
  2. labelViewをscrollViewに追加し、scrollViewの高さをlabelViewの最終的な高さに設定します。

もう1つのオプションは、IBにスクロールビューを追加し、そのビューをスクロールビューに追加することです。重要なことは、ScrollViewがRoadになり、他のビューがRoadに表示されることです。

于 2012-10-12T05:43:17.813 に答える
0

UITextViewを使用して、それをサブビューとしてスクロールビューに追加する必要があります(スクロールビューはself.viewに追加されます)。

// NSString *yourLabelString = (Your Label String)

    CGSize constraint = CGSizeMake(320, 10000);
    CGSize size = [yourLabelString sizeWithFont:[UIFont systemFontOfSize:20] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    UITextView *yourTextView = [[UITextView alloc] init];

    yourTextView.frame = CGRectMake(0,0, size.width, size.height);
[scrollview addSubview:yourTextView];

scrollview.frame = CGRectMake(0, 0, 320, 460);
    scrollview.contentSize = CGSizeMake(size.width,size.height+20);
于 2012-10-12T06:27:31.467 に答える