2012-07-22 65 views
1

我有在Storyboard中完成的4個部分中的靜態單元格的UITableView。不過,我想更改一個部分的分隔符顏色([UIColor clearColor])。我怎樣才能做到這一點???它實際上可能嗎?UITableView與靜態單元格 - 每節不同的分離顏色?

我可以將整個表格的separatorColor設置爲clearColor,但不僅限於一個特定的部分。

截圖表視圖部分的:

Screenshot of table view section

回答

1

AFAIK存在用於此沒有方法。但是,您可以將背景圖像放置在底部有分隔符的單元格中,並將separatorstyle設置爲UITableViewCellSeparatorStyleNone。所以你在每個單元格中都有自己的分隔符。

+0

我已請iphonesdk.com論壇和Manish915回答我這個連連接它的屏幕截圖,所以我想這不應該是很難http://www.iphonedevsdk.com/forum /iphone-sdk-development/106224-uitablewiew-with-static-cell-different-separation-color-per-section.html – pprochazka72 2012-07-22 14:17:11

+0

我不確定,但您可以嘗試。無論如何,你的cellForRowAtIndexPath方法應該像這樣開始: static NSString * CellIdentifier = @「Cell」; UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if(!cell)cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } – Mert 2012-07-22 16:52:43

0

也許你可以通過將該部分的標題文本設置爲空字符串來實現目標。

0

一種方法是創建自己的UIView子類並在drawRect:中執行自己的自定義繪圖。您將採用此視圖並將其添加爲您的表格視圖單元的backgroundView。事情是這樣的:

- (void)drawRect:(CGRect)rect 
{ 
    [super drawRect:rect]; 
    // Drawing code 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetLineWidth(context, 1.0); 

    // Draw black line 
    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); 
    CGFloat components[] = {0.0, 0.0, 0.0, 0.3}; 
    CGColorRef blackColor = CGColorCreate(colorspace, components); 

    CGContextSetStrokeColorWithColor(context, blackColor); 

    CGContextMoveToPoint(context, 0, rect.size.height - 1.5); 
    CGContextAddLineToPoint(context, rect.size.width, rect.size.height - 1.5); 
    CGContextStrokePath(context); 
    CGColorRelease(blackColor); 

    // Draw white bottom line 
    CGFloat whiteComponents[] = {1.0, 1.0, 1.0, 0.75f}; 
    CGColorRef whiteColor = CGColorCreate(colorspace, whiteComponents); 

    CGContextSetStrokeColorWithColor(context, whiteColor); 

    CGContextMoveToPoint(context, 0, rect.size.height - 0.5); 
    CGContextAddLineToPoint(context, rect.size.width, rect.size.height - 0.5); 
    CGContextStrokePath(context); 
    CGColorRelease(whiteColor); 

    // Draw top white line 
    CGFloat whiteTransparentComponents[] = {1.0, 1.0, 1.0, 0.45}; 
    CGColorRef whiteTransparentColor = CGColorCreate(colorspace, whiteTransparentComponents); 

    CGContextSetStrokeColorWithColor(context, whiteTransparentColor); 

    CGContextMoveToPoint(context, 0, 0.5); 
    CGContextAddLineToPoint(context, rect.size.width, 0.5); 
    CGContextStrokePath(context); 
    CGColorRelease(whiteTransparentColor); 



    CGColorSpaceRelease(colorspace); 
} 
相關問題