0

UIScrollViewがあり、その中にいくつかのUILabelとUITextViewがあります。UIScrollViewは、マスターUIViewのサブビューです。UIScrollViewは次のように初期化されます。

UIScrollView* scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30, 75, rct.size.width-50, 1000)];

UILabelsはサブビューとして追加されます。

    lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];
    lbl.textColor = [UIColor whiteColor];
    [lbl setBackgroundColor:[UIColor greenColor]];
    [lbl setFont:[UIFont fontWithName:@"Arial-BoldMT" size:16]];
    lbl.text = [NSString stringWithFormat:@"name: %@",firstName];
    [scrollView addSubview:lbl];
    [lbl release];

    lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 20, 200, 40)];
    lbl.textColor = [UIColor whiteColor];
    [lbl setBackgroundColor:[UIColor redColor]];
    [lbl setFont:[UIFont fontWithName:@"Arial-BoldMT" size:16]];
    lbl.text = [NSString stringWithFormat:@"last name: %@",lastName];
    [scrollView addSubview:lbl];
    [lbl release];

    .   
    .   

    // TEXT VIEW

    UITextView *txt1 = [[UITextView alloc] initWithFrame:CGRectMake(0, 160, rct.size.width-50, 1000)];
    txt1.textAlignment = UITextAlignmentLeft;
    txt1.textColor = [UIColor whiteColor];
    [txt1 setBackgroundColor:[UIColor clearColor]];
    UIFont *f = [UIFont fontWithName:@"Arial-BoldMT" size:16];
    [txt1 setFont:f];
    txt1.text = [NSString stringWithFormat:@"info: %@",personInfo];
    [scrollView addSubview:txt1];

    CGRect newframe1 = txt1.frame;
    newframe1.size.height = txt1.contentSize.height + 3; // offset for shadow
    txt1.frame = newframe1;
    [txt1 release];

TextViewはハックとして追加され(ここに表示)、基本的にスクロール可能なのは1つだけで、他のビューは静的なままです。スクロールする必要もあります。

編集: scrollViewの境界の外側でもUILabelを追加すると、そこでスクロールしません:

    lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 940, 100, 1000)];
    lbl.textColor = [UIColor whiteColor];
    [lbl setBackgroundColor:[UIColor whiteColor]];
    [lbl setFont:[UIFont fontWithName:@"Arial-BoldMT" size:20]];
    lbl.text = [NSString stringWithFormat:@"TEST"];
    [scrollView addSubview:lbl];
    [lbl release];

scrollViewは動揺しません!

4

1 に答える 1

2

contentSizeスクロールビューの設定を試してください:

scrollView.contentSize = ...

スクロールビューフレームよりも大きなものに。(たとえば、ラベルとテキスト ビューを含むもので、高さはおそらく 1160 ピクセルです)。

スクロール ビューのフレームは、スクロール ビュー コンテンツのフル サイズではなく、スクロール ビューの表示領域のサイズを表すように設定する必要があります。

于 2012-10-19T12:03:27.310 に答える