ios/xcode/ target-c: как создать вспомогательный вид с изображением в пользовательской ячейке?
Насколько я понимаю, чтобы показать вспомогательный вид с изображением, вам нужно изменить путь CellForRowWithIndex.
Основываясь на различных уроках и вопросах в SO, я бросил в этот метод все, кроме кухонной раковины. Некоторые говорят, что вам нужно только включить вспомогательный вид. Другие говорят, что вам нужна кнопка. Несмотря на это, изображение по-прежнему не отображается.
Мне также сказали, что проблема не в раскадровке, как в одном из обзоров аксессуаров акции против ни одного.
Может ли кто-нибудь порекомендовать надежный способ получить изображение для отображения в дополнительном представлении:
Вот метод, который я пытался без успеха:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
// UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
// cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
// cell.selectionStyle = UITableViewCellSelectionStyleBlue;
IDContactImport *contactImport = self.contacts[indexPath.row];
IDTableViewCell *idTableCell =(IDTableViewCell *)cell;
idTableCell.contactImport=contactImport;
if (contactImport.imageData==nil)
{
idTableCell.iconView.image = [UIImage imageNamed:@"headshot.jpg"];
}
else{
idTableCell.iconView.image = [UIImage imageWithData:contactImport.imageData];
}
UIImage *image = [UIImage imageNamed:@"checked.gif"];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
button.frame = frame;
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor = [UIColor clearColor];
cell.accessoryView = button;
NSLog(@"Trying to load accessory image");
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checked.gif"]];
cell.accessoryView = imageView;
// UIImage *image = [UIImage imageNamed:@"headshot.jpg"];
// UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
// CGRect frame = CGRectMake(0.0, 0.0, image.size.width, image.size.height);
button.frame = frame;
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
button.backgroundColor = [UIColor clearColor];
cell.accessoryView = button;
return cell;
}
1 ответ
У вас там правильный ответ. Но это позже сжимается в коде.
Это правильно:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checked.gif"]];
cell.accessoryView = imageView;
Также используйте изображения в формате PNG, а не в формате GIF. Это лучший формат для разработки под iOS.