Próbuję użyć UIEdgeInsetsMake
, aby ustawić tło mojej komórki na gradient. Próbowałem wielu rzeczy, aby to działało, ale bez względu na to, co używam, zawsze jest problem.UIEdgeInsetsMake tworzenie dziwnego pasma w komórce i nie wiem jak to naprawić
Po prostu mam dwie komórki statyczne, gdzie próbuję ustawić ich backgroundView
w willDisplayCell:
. Mam osobne obrazy dla komórek górnych, dolnych i środkowych, ale ponieważ mam dwie komórki, potrzebuję tylko góry i dołu. Są to te zdjęcia:
Top
Dół
Jest brakującym linia na górze dolnej jednej więc, że nie jest to 2PT linia pomiędzy nimi. Ustawiłem nieco wysokość dolnej, aby zrekompensować (1pt wyżej). Te obrazy mają 44 x 44 punkty.
ja je ustawić w następujący sposób:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
UIImageView *topCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-top"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = topCellBackgroundImageView;
}
// If it's the last row
else if (indexPath.row == ([tableView numberOfRowsInSection:0] - 1)) {
UIImageView *bottomCellBackgroundImageView =
[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"grouped-cell-bg-bottom"]
resizableImageWithCapInsets:UIEdgeInsetsMake(5.0, 5.0, 5.0, 5.0)]];
cell.backgroundView = bottomCellBackgroundImageView;
}
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
To nie działa dobrze. Jak widać na obrazku poniżej, w górnej komórce znajduje się biały "pas" w skali 1pt, który wygląda dość brzydko. Nie wiem, dlaczego tam jest.
Więc zmieniłem topCellBackgroundView
mieć wypustki krawędziowe (5.0, 5.0, 0.0, 5.0)
, a ponieważ jest zaokrąglona tylko na górze, właściwość bottom
nie muszą być uwzględnione w (jest płaska). To działa idealnie! Z wyjątkiem sytuacji, gdy wybierzesz komórkę, dolna komórka nie będzie już zajmowała całej jej komórki.
Co mam zrobić? Wydaje się, że bez względu na to, co robię, to nie działa. Próbowałem również 1.0 zamiast 0.0, a także -1,0 bezskutecznie.
mają u ustawić wysokość rzędu, aby być wysokość backgroundimageviews? –
Zatrzymaj swoją aplikację, gdy ten widok tabeli znajduje się na ekranie i wpisz: po [[UIApplication sharedApplication] keyWindow] recursiveDescription] w twoim debugerze. Wklej tutaj dane wyjściowe. –
Tak, oba mają 44 cm wzrostu, materik. robert, jest dostępny tutaj: https://gist.github.com/anonymous/2ad5556bceb6cd4666ed –