Я немного растерялся. Я использовал свойство слоя UIView, чтобы скруглить углы нескольких элементов в моем приложении. Однако этот UIImageView просто не соответствует требованиям. Не уверен, что мне не хватает.
UIImageView (называемый previewImage) содержится в ячейке табличного представления. Я попытался установить несколько местоположений свойства cornerRadius (в самой ячейке и в контроллере, который создает ячейку) безрезультатно.
static NSString *CellIdentifier = @"MyTableViewCell";
MyTableViewCell *cell = (MyTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:CellIdentifier owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
cell.previewImage.layer.cornerRadius = 20; //Made it 20 to make sure it's obvious.
}
Что-то мне не хватает в способе загрузки ячеек?
iphone
ios
uiimageview
rounded-corners
MarkPowell
источник
источник
shouldRasterize = false
?Также стоит отметить, что
т.е. если у вас есть это
и
или
Это не сработает . вам нужно будет избавиться от кода аспектаFit
источник
Это должно работать
источник
clipsToBounds
это метод более позднего класса. Поверьте, этоmasksToBounds
как указано выше.Я считаю, что вам нужно установить:
источник
В Xcode Interface Builder выбор атрибута чертежа «Clip Subviews» для представления вместе с установкой радиуса угла в коде
cell.previewImage.layer.cornerRadius = 20;
делает всю работу за меня!См. Параметр «Подпросмотры клипа» в IB
источник
Попробуйте этот фрагмент кода ниже
источник
Попробуйте этот код: -
источник
Для не применяется , если изображение является очень большим, в зависимости от оборудования.
imageView.contentMode = .scaleAspectFill
cornerRadius
Некоторые тесты с измененными размерами панорамных изображений:
Размеры imageView - 160x100. Интересно, что новое оборудование не обязательно более способно.
Не стесняйтесь редактировать этот пост с дополнительными результатами тестирования!
источник
источник
Swift 4.2 Ответ:
Чтобы радиус угла работал, добавьте изображение в a,
UIView
а затем вам нужно установитьmasksToBounds
свойство изображения наtrue
:Примечание. Замените 20 на желаемое.
cornerRadius
источник
Ничего из предыдущих ответов не работает?
Может случиться так, что размер UIImageView больше, чем размер изображения. Угловой радиус можно установить правильно, но в этом случае он не будет виден.
Быстрая проверка размера UIImageView по коду: (или можно использовать инструмент «Просмотр иерархии пользовательского интерфейса» в XCode)
В этом сценарии вы должны убедиться, что UIImageView имеет то же соотношение сторон, что и изображение.
источник