【问题标题】:Setting three sided border for UITableView - IOS为 UITableView 设置三边边框 - IOS
【发布时间】:2013-05-17 04:50:22
【问题描述】:

对于我的设计规范,我的表格视图应该只有顶部、左侧和右侧三个边框。我已经使用以下代码添加了它....

CGSize mainViewSize = menu_table.bounds.size;
CGFloat borderWidth = 1;
UIColor *borderColor = [UIColor lightGrayColor];
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, borderWidth, mainViewSize.height)];
UIView *rightView = [[UIView alloc] initWithFrame:CGRectMake(mainViewSize.width - borderWidth, 0, borderWidth, mainViewSize.height)];
UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, mainViewSize.width, borderWidth)];
leftView.opaque = YES;
rightView.opaque = YES;
topView.opaque = YES;
leftView.backgroundColor = borderColor;
rightView.backgroundColor = borderColor;
topView.backgroundColor = borderColor;

// for bonus points, set the views' autoresizing mask so they'll stay with the edges:
leftView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleRightMargin;
rightView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin;
topView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;

[menu_table addSubview:leftView];
[menu_table addSubview:rightView];
[menu_table addSubview:topView];

它工作正常,但是当我滚动表格时,添加的子视图也向上移动。我不确定为什么子视图随着单元格移动而不是它应该用表格修复,知道问题是什么以及如何用表格视图大小修复它。谢谢。

【问题讨论】:

    标签: iphone ios cocoa-touch uiview uitableview


    【解决方案1】:

    我不太了解,但我能想到的最简单的方法是在您的表格视图中添加 3 个内容视图,如下所示:

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
        //add left view
        UIView *vwLeft=[[UIView alloc] initWithFrame:CGRectMake(X_POS, Y_POS, LINE_WIDTH, CELL_HEIGHT)];
        [vwLeft setBackgroundColor:[UIColor redColor]];
        [[cell contentView] addSubview:vwLeft];
        [vwLeft release];
    
         //add right view
        UIView *vwRight=[[UIView alloc] initWithFrame:CGRectMake(X_POS, Y_POS, LINE_WIDTH, CELL_HEIGHT)];
        [vwRight setBackgroundColor:[UIColor blueColor]];
        [[cell contentView] addSubview:vwRight];
        [vwRight release];
    
        //add top view
        UIView *vwTop=[[UIView alloc] initWithFrame:CGRectMake(X_POS, Y_POS, LINE_WIDTH, CELL_HEIGHT)];
        [vwTop setBackgroundColor:[UIColor yellowColor]];
        [[cell contentView] addSubview:vwTop];
        [vwTop release];
    
    }
    return cell;
    

    }

    享受编程!

    【讨论】:

    • 谢谢你的建议,我会试试的。
    • 我试过了,现在的问题是我在表格底部保留了一些图像,如果我向上滚动,一旦行向上移动表格中的空白区域没有边框并且它没有触及完成后的图像有单元格。看起来很奇怪。
    • 能否附上截图!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    相关资源
    最近更新 更多