В моем представлении входа в систему есть подпредставление UIActivityView
с UILabel
надписью «Вход в систему…». У этого подпредставления есть углы, которые не округлены. Как я могу сделать их круглыми?
Есть ли способ сделать это внутри моего XIB?
ios
cocoa-touch
uiview
itsaboutcode
источник
источник
cornerRadius
свойство к таблице только с помощью Interface Builder, без необходимости использовать предварительно отрендеренные изображения или устанавливать его в коде.Ответы:
Попробуй это
...
Примечание. Если вы пытаетесь применить закругленные углы к представлению a
UIViewController
, его следует применять не в конструкторе контроллера представления, а в-viewDidLoad
, после того, какview
он фактически создан.источник
Вы также можете использовать опцию User Defined Runtime Attributes конструктора интерфейса, чтобы установить путь
layer.cornerRadius
к значению ключа . Убедитесь, что вы включилиQuartzCore
библиотеку.Этот прием также работает для установки layer.borderWidth, однако он не будет работать, так
layer.borderColor
как ожидается, что aCGColor
не будетUIColor
.Вы не сможете увидеть эффекты в раскадровке, поскольку эти параметры оцениваются во время выполнения.
источник
Clip Subviews
опцию для просмотра IB, а такжеТеперь вы можете использовать быструю категорию в UIView (код под картинкой) в @IBInspectable, чтобы показать результат на раскадровке (Если вы используете категорию, используйте только cornerRadius, а не layer.cornerRadius в качестве ключевого пути.
источник
@IBDesignable
чтобы получить предварительный просмотр в IB! (Больше на nshipster.com/ibinspectable-ibdesignable )стриж
Короткий ответ:
Дополнительный ответ
Если вы пришли к этому ответу, вы, вероятно, уже видели достаточно, чтобы решить вашу проблему. Я добавляю этот ответ, чтобы дать немного более наглядное объяснение того, почему вещи делают то, что делают.
Если вы начнете с обычного, у
UIView
него есть квадратные углы.Вы можете дать ему закругленные углы, изменив
cornerRadius
свойство представленияlayer
.Большие значения радиуса дают более закругленные углы
и меньшие значения дают меньше закругленных углов.
Этого может быть достаточно, чтобы решить вашу проблему прямо здесь. Однако иногда представление может иметь подпредставление или подуровень, выходящий за границы представления. Например, если бы я , чтобы добавить к югу вид , как это
или если бы я должен был добавить подслой, как это
Тогда я бы в конечном итоге
Теперь, если я не хочу, чтобы вещи висели за пределами границ, я могу сделать это
или это
который дает этот результат:
Оба
clipsToBounds
иmasksToBounds
являются эквивалентными . Просто первый используется с,UIView
а второй - сCALayer
.Смотрите также
источник
blueView.frame.size.height/2
) приводит к идеально закругленному углу.Другой подход, чем тот, который сделал Эд Марти:
Вам нужен setMasksToBounds для загрузки всех объектов из IB ... У меня возникла проблема, когда мой взгляд округлился, но не было объектов из IB: /
это исправило это = D надеюсь, это поможет!
источник
Как описано в этом сообщении в блоге , вот метод, чтобы закруглить углы UIView:
Самое интересное в этом то, что вы можете выбрать, какие углы вы хотите округлить.
источник
Вам необходимо сначала импортировать заголовочный файл
<QuartzCore/QuartzCore.h>
Не пропустите -
setMasksToBounds
иначе эффект может не проявиться.источник
Вы можете использовать следующий пользовательский
UIView
класс, который также может изменить цвет и ширину границы. Так какIBDesignalbe
вы можете изменить атрибуты в конструкторе интерфейсов.источник
источник
Swift 4 - Использование IBDesignable
источник
layer.cornerRadius
возвращению в исходное состояние? (например, как раскадровка xcode знает, как установитьcornerRadius
только послеUIView
инициализации оригинала )?источник
- SwiftUI
В SwiftUI вы можете использовать
cornerRadius
модификатор прямо на любом,View
что захотите. Например, этот вопрос:Обратите внимание, что больше нет ромбовидного радиуса, поэтому, даже если вы установили угол угла более половины высоты , он будет плавно округляться.
Ознакомьтесь с этим ответом, чтобы узнать, как округлить определенные углы в SwiftUI
источник
Пожалуйста, импортируйте,
Quartzcore framework
тогда вы должны установитьsetMaskToBounds
дляTRUE
этого очень важную строку.Затем:
[[yourView layer] setCornerRadius:5.0f];
источник
источник
Сделайте это программно в obj c
Мы также можем сделать это из сториборда.
источник
если закругленный угол не работает в viewDidload () , лучше написать код в viewDidLayoutSubview ()
Надеюсь это поможет!
источник
Вы также можете использовать изображение:
источник
set cornerRadious Недвижимость для круглого просмотра
set masksToBounds Boolean Значение изображения не будет отображаться за пределами границы углового радиуса.
источник
Использование расширения UIView:
Применение:
источник
В Swift 4.2 и Xcode 10.1
источник
ON Xcode 6 Ваша попытка
или
источник