Фиксированный размер изображения
Вы должны установить рамку UIImageView для всех видов изображений.И затем вам нужно поиграть со свойством contentIIode UIImageView - где вы можете масштабировать изображение, чтобы оно соответствовало кадру, заполнить кадр, сохранить соотношение сторон и т. Д. И также вам нужно установить для clipsToBounds значение YES, чтобы обрезать «перекрывающиеся» части изображения.
Круглые углы
Для этого вы можете использовать CALayer, который также доступен в UIImageView.Это вопрос четырех строк ...
imageView.layer.cornerRadius = 3.0;
imageView.layer.masksToBounds = YES;
imageView.layer.borderColor = [UIColor blackColor].CGColor;
imageView.layer.borderWidth = 1.0;
Пример:
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier];
if ( self ) {
...
self.imageView.layer.cornerRadius = 3.0;
self.imageView.layer.masksToBounds = YES;
self.imageView.layer.borderColor = [UIColor blackColor].CGColor;
self.imageView.layer.borderWidth = 1.0;
...
}
return self;
}
Расширяемый ввод текста
Вы должны подготовить хорошее фоновое изображениеза это.И затем вы можете создать растягиваемое изображение с помощью метода класса UIImage: – stretchableImageWithLeftCapWidth:topCapHeight:
Каждая строка будет иметь подкласс UITableViewCell, где вы можете обрабатывать все эти вещи.Растягиваемый фон и т. Д. Изменение размера с помощью делегата UITextView (textViewDidChange :) и т. Д.
Google для некоторых примеров или поиска SO.
Gaps
UITableViewDelegateимеет метод ...
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
... где вы можете указать высоту строки.Чтобы создать пробел, добавьте это в свою пользовательскую ячейку ...
Заголовок:
UIImageView *__backgroundImageView;
Инициализатор:
__backgroundImageView = [[UIImageView alloc] initWithImage:...stretchableImage...];
[self.contentView addSubview:__backgroundImageView];
[self.contentView sendSubviewToBack:__backgroundImageView];
Расположение:
- (void)layoutSubviews {
[super layoutSubviews];
// This draws background image over the whole cell and adds 5px gap top/bottom
CGRect rect = self.contentView.bounds;
rect.origin.y += 5; // Draw background image 5 pixels below cell top
rect.size.height -= 2 * 5; // Remove top/bottom gap from background image height
__backgroundImageView.frame = rect;
...
}
Управление памятью:
- (void)dealloc {
[super dealloc];
[__backgroundImageView release]; __backgroundImage = nil;
...
}