2013-09-25 16 views
18

W IOS7 UITableView nie ma już wcięcia w przypadku użycia style = grouped. Jak włączyć wcięcie, aby UITableView zachowywał się jak aplikacja ustawień z Apple?IOS7 UITableView pogrupowane w Ustawienia App

+0

Zobacz ten link. Pokazuje, jak skonfigurować zgrupowane UITableView http://mobisoftinfotech.com/iphone-uitableview-tutorial-grouped-table/ – erdekhayser

+2

Nie, wiem jak to działa. Ale w IOS7 usunęli wcięcie, ale potrzebuję tego. Apple używa ich także w swojej aplikacji do ustawień. –

+0

Co dokładnie oznacza wcięcie? Separatory lub tekst? Jeśli umieścisz swoje subviews w widoku zawartości komórki, wszystko powinno wyglądać dobrze ... – Bms270

Odpowiedz

0

Wewnątrz cellForRowAtIndexPath metody, spróbuj tego:

CALayer *sublayer = [CALayer layer]; 
UIImage *img = [UIImage imageNamed:@"blue_box_6dbcef.png"]; 
sublayer.backgroundColor = [[UIColor alloc] initWithPatternImage:img].CGColor; 
sublayer.frame = CGRectMake(10,0,container.frame.size.width-20, 112); 
//sublayer.cornerRadius = 5; // For rounded corners 
UIView *bgview = [[UIView alloc] init]; 
bgview.backgroundColor = [UIColor clearColor]; 
[bgview.layer addSublayer:sublayer]; 
cell.backgroundView = bgview; 

To doda 10pt margines po obu stronach (lewy/prawy) komórki.

16

Istnieje znacznie prostszy sposób, aby to osiągnąć.

  1. Umieść swoją UITableView z dala od boków. np: używając Autolayout masz początkową i końcową przestrzeń 15px (lub cokolwiek chcesz). Tworzysz teraz "wcięcie", które Apple dawało za darmo w zgrupowanych widokach tabel.

  2. Dostosuj warstwę, aby dodać narożniki i obramowanie.

[[[self tableView] layer] setCornerRadius:5.0f];
[[[self tableView] layer] setBorderWidth:0.5f];
[[[self tableView] layer] setBorderColor:[[UIColor redColor] CGColor]];

(nie mogę zamieścić zdjęcie rezultatu, bo nie mają jeszcze wystarczającej reputacji)

Powiązane problemy