我已使用-[UITableView setSeparatorColor:]
在附加圖像中設置紅色邊框。但是,如何將邊框的顏色設置爲白色?如何在分組的UITableViewCells上設置「上」邊框顏色?
編輯:我知道我可以使用UITableViewSeparatorStyleSingleLine
風格完全刪除白色的。但我不想這樣做:我想改變它的顏色。謝謝!
我已使用-[UITableView setSeparatorColor:]
在附加圖像中設置紅色邊框。但是,如何將邊框的顏色設置爲白色?如何在分組的UITableViewCells上設置「上」邊框顏色?
編輯:我知道我可以使用UITableViewSeparatorStyleSingleLine
風格完全刪除白色的。但我不想這樣做:我想改變它的顏色。謝謝!
只要看看這個鏈接是否可以幫助你。
Changing border color in iPhone UITableView cells (non-grouped)
我認爲它已經解決了你指的是同樣的問題。
白色是因爲分隔符樣式設置爲單線邊緣。如果將其更改爲單線,白線將消失。不知道這是否能解決您的問題,但我認爲如果不做更多的工作,就不會改變顏色。
是的,我知道這一點。但是我認爲這種東西本該在iOS 5中定製,而不需要大量的黑客入侵。 –
嘗試爲單元格製作「線視圖」。所以在的cellForRowAtIndexPath:方法只是添加到您需要的細胞:
UIView *lineView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.bounds.size.width, 1)] autorelease];
lineView.backgroundColor = [UIColor whiteColor];
lineView.autoresizingMask = 0x3f;
[cell.contentView addSubview:lineView];
,將白線添加到每個單元的頂部。如果你不想要它的第一行添加一個if語句:
if (indexPath.row != 0)
{
UIView *lineView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.contentView.bounds.size.width, 1)] autorelease];
lineView.backgroundColor = [UIColor whiteColor];
lineView.autoresizingMask = 0x3f;
[cell.contentView addSubview:lineView];
}
希望它有幫助。
其實我說的是每個單元底部的白線,包括彎曲的邊框。所以自己畫一條線不會完全割斷它;我還需要繪製曲線,並在單元格後面以某種方式繪製它。 –
使用神奇數字進行autoresizingMask是程序員不應該做的事情。有命名常量來做到這一點。 – Sulthan
你不能。
這個內置的繪圖是針對分組式的tableView,並且不能改變(據我所知...)
有一個變通方法,以這個(我們使用 - >對不起沒有源代碼),但我想你不會喜歡它:
1 /有每個單元格的位置信息 2 /根據其位置重新繪製每個單元格的背景(所以你必須保存此位置:FirstCell,MiddleCell,LastCell)重現t他分組了tableView的樣子。
辦法做到這與CoreGraphics
:
從你的子類CellGroupedBackgroundView(或customGroupedTableViewCell,根據您選擇的設計)創建2個幾乎相同CAShapeLayers。每個分隔符的顏色。並且將這些顏色公開爲您的CellGroupedBackgroundView的屬性。
您根據您所設定的位置財產這些層的路徑(只使用中間細胞CGPathAddLineToPoint
,並CGPathAddArcToPoint
的第一和最後一個單元格)設置
2 /使用,根據其indexPath設置每個單元格的'位置'...
祝你好運:)
您試圖更改默認iOS的用戶界面,但變化非常複雜,不能用默認屬性來完成。
解決方案是什麼?只需刪除由UITableVie繪製的線條(將顏色設置爲[UIColor clearColor]
)並自定義UITableViewCell背景。
當然,你需要3種類型的背景 - 在第一個單元格,在最後一個單元和中間的:
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath (NSIndexPath*)indexPath {
UITableViewCell* cell = [...];
UIView* background;
if (indexPath.row == 0) {
background = [...]; //background for the first cell
}
else if (indexPath.row + 1 == [self tableView:tableView numberOfRowsInSection:indexPath.section]) {
background = [...]; //background for the last cell
}
else {
background = [...]; //background for the middle cells
}
cell.backgroundView = background;
}
的問題是如何建立的背景。通常我只是使用UIImageView或幾個UIImageView的組合(圓角作爲一個圖像,線作爲可複製的圖像)。
您發佈的鏈接提及如何設置分隔符顏色,這是我已經在做的事情(這就是我在該圖像中獲得紅色的方式)。分組表格單元具有兩種邊框顏色:分隔符顏色,還有別的東西。這是我試圖發現的「別的東西」。 –