1) Вы можете создать округленные изображения в viewDidLoad (или когда ваши данные готовы) и сохранить их во временном массиве. Для этого вы просто создаете его, как вы делаете это сейчас. Затем вы записываете содержимое представления в новое изображение. После этого вы показываете вновь созданное изображение в виде таблицы без динамической маскировки.
Чтобы сохранить viewcontents в изображение, вы можете использовать этот код:
- (UIImage*) screenshotOfView: (UIView*) view
{
UIGraphicsBeginImageContext(view.frame.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
ОК, я буду более конкретно. В тот момент, когда ваш demoArray
заполнен данными. Вы перебираете этот массив и предварительно визуализируете свои изображения. То, как вы это сделать (с помощью упомянутого метода):
for(NSDictionary* dictionary in demoArray)
{
UIImage* originalImage = [UIImage imageNamed:[dictionary objectForKey:@"image"]];
UIImageView* tmpImageView = [[UIImageView alloc] initWithImage: originalImage];
tmpImageView.layer.cornerRadius = 9.0;
tmpImageView.layer.masksToBounds = YES;
UIImage* roundedImage = [self screenshotOfView: tmpImageView];
[dictionary setObject: roundedImage forKey: @"roundedImage"];
}
Затем в методе cellForTableRow
, вы просто использовать это изображение:
cell.imageView.image = [UIImage imageNamed:[[demoArray objectAtIndex:[indexPath row]] objectForKey:@"roundedImage"]];
(Этот код не проверял, просто записал ...)
2) Еще одним возможным решением было бы сделать образы в вашем подклассе tableViewCell в пределах drawRect:
(в масках через CoreGraphics), но это намного сложнее.
3) После ответа Bartosz Ciechanowski вы можете создать необходимый overlayImage динамически для каждого размера, который вы используете с помощью CorGraphics. Но первое решение может быть самым простым.
Я не понимаю вашего ответа. Изображения в моем приложении будут загружены из Интернета и сохранены в demoArray. Какое содержимое я должен захватить? – Flocked
Я добавил пример кода и описал его дальше. – calimarkus