#ios #objective-c #uitableview
#iOS #objective-c #uitableview
Вопрос:
Я добавляю содержимое в UITableViewCell, используя следующий код:
NSManagedObject *device = [self.devices objectAtIndex:indexPath.row];
[cell.textLabel setText:[NSString stringWithFormat:@"%@", [device valueForKey:@"title"]]];
[[cell textLabel] setBackgroundColor:[UIColor clearColor]];
[[cell textLabel] setTextColor:[UIColor whiteColor]];
cell.backgroundView = [[UIImageView alloc] initWithImage:[ [UIImage imageNamed:[device valueForKey:@"imagename"]] stretchableImageWithLeftCapWidth:0.0 topCapHeight:5.0] ];
Однако, хотя этот код работает, он сжимает мои изображения, чтобы они помещались в ячейку. Я хочу, чтобы изображения отображали только верхнюю часть изображения, а не растягивались или сжимались вообще.
Ответ №1:
Используйте [UIView setContentMode:]
Режимы, указанные ниже:
typedef NS_ENUM(NSInteger, UIViewContentMode) {
UIViewContentModeScaleToFill,
UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent
UIViewContentModeScaleAspectFill, // contents scaled to fill with fixed aspect. some portion of content may be clipped.
UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay)
UIViewContentModeCenter, // contents remain same size. positioned adjusted.
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
};
Вы можете использовать TopLeft.
Добавлено:
Растягиваемое изображение с высотой верхней крышки сделает ваше изображение подходящим для вашего вида. Я не думаю, что вы можете показать верхнюю часть вашего изображения.
Если вам нужно показать только верхнюю часть вашего изображения, попробуйте это.
UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[device valueForKey:@"imagename"]]];
[iv setContentMode:UIViewContentModeTop];
[iv setClipsToBounds:YES];
cell.backgroundView = iv;
Измените последнюю строку кода на эту и попробуйте.
Комментарии:
1. ОК. Я новичок в программировании на iOS. Это еще одна строка кода или продолжение моей последней строки?
2. Ах, вы используете растягиваемое изображение. Обязательно ли это? Если это так, я отредактирую свой ответ.
3. Нет. Не требуется. Это было единственное, что я знал, что нужно вставить туда для форматирования изображения. Можете ли вы обновить информацию о том, как добавлять в код UIView при удалении растягиваемого изображения?
4. Добавлено, что вы изменили код. Фон ячейки теперь пустой. Нужно ли было применять этот новый код к фону ячейки?
5. Это так. Я добавил еще одну строку, чтобы установить вид изображения в качестве фона ячейки. Моя ошибка.