2012-11-15 7 views
5

Mam UITableView z 4 sekcjami. Teraz chcę dodać efekt cienia do konkretnej sekcji tabeli, ale nie do pełnej tabeli. Jak mogę osiągnąć to zadanie?Cień wokół sekcji UITableView

+1

nadal masz problem? – Omarj

+0

Tak, nie znalazłem jeszcze rozwiązania –

Odpowiedz

2

Spróbuj

yourView.layer.shadowColor = [[UIColor blackColor] CGColor]; 
yourView.layer.shadowOffset = CGSizeMake(1.0f, 1.0f); 
yourView.layer.shadowRadius = 3.0f; 
yourView.layer.shadowOpacity = 1.0f; 

Musisz zastąpić "yourView" z niczego innego

Nie zapomnij też trzeba import QuartzCore/CALayer.h

+8

Nie mogę użyć tego rozwiązania, ponieważ musiałem pokazać je dla sekcji w UIScrollView nie dla pełnego stołu –

+0

http://stackoverflow.com/questions/7812430/how-to-create- niestandardowe widoki-sekcje – Omarj

0

Będziesz trzeba zmienić nagłówek i stopkę sekcji, a także wszystkie komórki sekcji.

Użyj do tego celu tableView:viewForFooterInSection:, tableView:viewForHeaderInSection: i tableView:cellForRowAtIndexPath:. Po prostu dodaj UIView z rgba 0/0/0/0.2 lub podobnym do każdego widoku, który chcesz zaciemnić.

0

Możesz dodać obraz z cieniem jako tło UITableViewCell. Cień powinien zostać narysowany na obrazie. Jest to bardzo proste, a aplikacja będzie działać szybciej.

0

Możesz określić cień dla wybranej sekcji. Oto przykład.

Przede wszystkim robimy jakąś dostępną przestrzeń dla nagłówka

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    if(section == mysection) 
    { 
     // Returns the height you want for the header section. I am giving 20 
     return 20; 
    } 
} 

wtedy dekorację nagłówku

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    if(section == mysection) 
    { 
     UIView *shadowView = [[[UIView alloc] initWithFrame: CGRectMake(0,0,320,20)] autorelease]; 
     shadowView.backgroundColor = [UIColor whiteColor]; 

     // Doing the Decoration Part 
     shadowView.layer.shadowColor = [[UIColor blackColor] CGColor]; 
     shadowView.layer.shadowOffset = CGSizeMake(1.0f, 1.0f); 
     shadowView.layer.shadowRadius = 3.0f; 
     shadowView.layer.shadowOpacity = 1.0f; 

     return shadowView; 
    } 
    return nil; 
} 

Kompletny go na swojej stronie. Ten jest podstawowym zarysem. Happy Coding :)

+0

w ten sposób mogę dodać cień do komórki, a nie do sekcji. –

+0

Proszę zobaczyć moją edycję –

+0

Dobra odpowiedź, działa poprawnie. –