3

根据本教程,我正在开发一个自定义的“脉冲样式”UITableView ,一切都很顺利。我进行了一些修改和扩展,但有一个我想实现的功能需要一些帮助:水平反弹区域的颜色。

这是创建包含表格视图的单元格的方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {    
    NSString *cellIdentifier = [@"TableViewCell" stringByAppendingFormat:@"%i", self.content.indexInArrayOfViews];
    UIView *view = [self.content viewAtIndex:indexPath.row];
    UITableViewCell *cell = [self.horizontalTableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier] autorelease];

        view.center = CGPointMake(view.center.y,view.center.x);
        view.contentMode = UIViewContentModeCenter;

        view.transform = CGAffineTransformMakeRotation(M_PI_2);
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

    [cell addSubview:view];

    return cell;
}

我知道存在重复使用单元格的问题,但现在我想在此处更改此颜色 [IMG]

我可以控制垂直表视图反弹区域的颜色,但我很难为我的水平视图复制这种成功。

这就是我垂直的做法:

CGRect frame = self.tableView.bounds;
    frame.origin.y = -frame.size.height;
    UIView* topBack = [[UIView alloc] initWithFrame:frame];
    topBack.backgroundColor = [self.delegate backgroundColorForTopOfTableView];
    [self.tableView addSubview:topBack];
    [topBack release];

这是根据这个 StackOverflow 问题。

如何更改水平表格视图(嵌套在表格视图单元格中)的颜色/背景?

这是一张专辑,里面有一些相关的 iPhone 截图和 IB 截图。

4

1 回答 1

0

我发现了一个解决方案:

if (indexPath.row == 0){
    UIView *bounce = [[UIView alloc] initWithFrame:CGRectMake(-320, 0, 320, 150)];
    bounce.backgroundColor = [self.delegate colorForBounceRegionAtRow:self.content.indexInArrayOfViews];
    [view addSubview:bounce];
}

if (indexPath.row + 1 == self.content.viewCount){
    UIView *bounce = [[UIView alloc] initWithFrame:CGRectMake([self.content widthOfViewAtIndex:self.content.viewCount - 1], 0, 320*2, [self.content greatestHeight])];
    bounce.backgroundColor = [self.delegate colorForBounceRegionAtRow:self.content.indexInArrayOfViews];
    [view addSubview:bounce];
}

这为第一个和最后一个元素添加了全屏的彩色矩形,给人一种反弹区域的错觉。

于 2012-08-12T12:59:03.870 回答