Jak zmieścić UIImage
w komórce UITableView
, UITableViewCell (?).Jak zmienić rozmiar obrazu, aby dopasować komórkę UITableView?
Czy ci addSubview
do cell
czy jest jakiś sposób, aby zmienić rozmiar cell.image
lub UIImage
zanim zostanie on przypisany do cell.image
?
Chcę zachować domyślny rozmiar komórki (bez względu na to, kiedy jest uruchamiany z zerowym prostokątem) i chciałbym dodać do każdego wpisu ikonę podobną do obrazków. Obrazy są nieco większe niż rozmiar komórki (rozmiar wiersza tabeli).
Myślę, że kod wygląda następująco (od góry głowy):
UIImage * image = [[UIImage alloc] imageWithName:@"bart.jpg"];
cell = ... dequeue cell in UITableView data source (UITableViewController ...)
cell.text = @"bart";
cell.image = image;
Co muszę zrobić, aby zmienić rozmiar obrazu do rozmiaru komórek? Widziałem coś takiego:
UIImageView * iview = [[UIImageView alloc] initWithImage:image];
iview.frame = CGRectMake(...); // or something similar
[cell.contentView addSubview:iview]
Powyższy doda obraz do komórki i mogę obliczyć wielkość, aby zmieścił się jednak:
- Nie jestem pewien, czy istnieje lepszy sposób, czy to nie jest zbyt duży napływ do dodać
UIImageView
tylko, aby zmienić rozmiarcell.image
? - Teraz moja etykieta (
cell.text
) musi być przeniesiony, ponieważ jest zasłonięte przez obraz, Widziałem rozwiązanie, w którym po prostu dodać tekst jako etykieta:
Przykład:
UILabel * text = [[UILable alloc] init];
text.text = @"bart";
[cell.contentView addSubview:iview];
[cell.contentView addSubview:label];
// not sure if this will position the text next to the label
// edited original example had [cell addSubview:label], maybe that's the problem
Czy ktoś może wskazać mi właściwy kierunek?
EDIT: Doh [cell.contentview addSubview:view]
nie [cell addSubview:view]
może mam patrzeć na to:
- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = ...;
CGRect frame = cell.contentView.bounds;
UILabel *myLabel = [[UILabel alloc] initWithFrame:frame];
myLabel.text = ...;
[cell.contentView addSubview:myLabel];
[myLabel release];
}
Nie ma innych sugestii? – stefanB