Я хотел бы добавить некоторые скругленные углы ко всем UIImageViews в моем проекте. Я уже получил работу кода, но должен применить ее к каждому изображению; я должен разделить UIImageView на подклассы для добавления этого? Если так, кто-то может дать мне некоторые подсказки относительно того, как сделать это?
Вот код
- (void)viewDidLoad {
[super viewDidLoad];
NSString *mainpath = [[NSBundle mainBundle] bundlePath];
welcomeImageView.image = [UIImage imageWithContentsOfFile:[mainpath stringByAppendingString:@"/test.png"]];
welcomeImageView.layer.cornerRadius = 9.0;
welcomeImageView.layer.masksToBounds = YES;
welcomeImageView.layer.borderColor = [UIColor blackColor].CGColor;
welcomeImageView.layer.borderWidth = 3.0;
CGRect frame = welcomeImageView.frame;
frame.size.width = 100;
frame.size.height = 100;
welcomeImageView.frame = frame;
}
Можно использовать категорию для UIImage, которая является альтернативным способом подклассификации Класса и иногда проще при небольших изменениях.
например, добавить метод, который возвращает UIImage с закругленным угловым набором атрибутов.
+(UIImage *)imageWithContentsOfFile:(NSString *)file cornerRadius:(NSInteger)...
дополнительную информацию о категориях Objective-c можно найти http://macdevelopertips.com/objective-c/objective-c-categories.html
Да, вы должны подклассьте UiimageView и используйте свой пользовательский подкласс на протяжении всего вашего проекта.
Проверьте это - Округлые углы на UiImage
Модификация слоя, кажется, лучший способ.
UIImageView * roundedView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"wood.jpg"]];
// Get the Layer of any view
CALayer * l = [roundedView layer];
[l setMasksToBounds:YES];
[l setCornerRadius:10.0];