0

このように、テーブルセル内のスクロールビューの前にテキストビューを配置して、スクロールビューがスクロールし、タイトルが配置されたままになるようにします。

[Title goes here] - it does not move with the scrollview
---------------------
|                   |
|    ScrollView     |
|                   |
---------------------

これは私のコードです。textViewはscrollviewの後ろに表示されます。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"];
    }

    NSInteger numberOfViews = 10;
    UIScrollView *vwScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1280, 200)];

    for (int i = 0; i < numberOfViews; i++) {
        CGFloat xOrigin = i * 250;
        UITextView *titleView = [[UITextView alloc]  initWithFrame:CGRectMake(0, 0, 1280, 20)];
        titleView.text = @"Title";
        [titleView setFont:[UIFont fontWithName:@"HelveticaBold" size:32]];


        UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0, 250, 180)];
        awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5/i/10 blue:0.5 alpha:1];
        [awesomeView.layer setBorderColor:[UIColor whiteColor].CGColor];
        [awesomeView.layer setBorderWidth:10.5f];
        awesomeView.layer.shadowPath = [UIBezierPath bezierPathWithRect:awesomeView.bounds].CGPath;

        [cell.contentView addSubview:titleView];
        [vwScroll addSubview:awesomeView];

    }
    vwScroll.contentSize = CGSizeMake(250 * numberOfViews, 200);

    [cell.contentView addSubview:vwScroll];

    return cell;
}
4

1 に答える 1

1

(0,0,width,titleHeight)titleView のフレームをたとえば に設定してから、scrollView のフレームを に設定できないのはなぜですか(0,titleHeight,width,cellHeight-titleHeight)

これは、セルの上部にタイトルを配置し、その高さを任意の高さに設定しtitleHeight、スクロールビューをセルの下部に配置して、セルの残りの部分に高さを設定します。

于 2013-03-19T07:47:13.417 に答える