Почему при первом добавлении UIBezierPath в качестве маски в UIView справа и снизу появляется меньшее поле?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Гость
 Почему при первом добавлении UIBezierPath в качестве маски в UIView справа и снизу появляется меньшее поле?

Сообщение Гость »


Каждый раз, когда я создаю экземпляр UIView и добавляю UIBezierPath в качестве маски с помощью функции roundSpecificCorners:withRadius:, представление кажется имеющим меньшие поля с правой стороны и снизу, из-за чего оно не покрывает все представление, как ожидалось.

@implementation LoginAccountViewController - (void)viewDidLoad { [супер просмотрDidLoad]; // Начальная настройка представления enterEmailView.inputTextField.placeholder = @"Введите адрес электронной почты"; enterPasswordView.inputTextField.placeholder = @"Введите пароль"; } - (void)viewWillLayoutSubviews{ // Применяем скругление углов на главном виде [mainViewContainer roundSpecificCorners:UIRetCornerTopLeft | UIRectCornerTopRight withRadius:10.0]; [супер viewWillLayoutSubviews]; } - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator { __weak typeof(self) слабыйSelf = self; [координатор animateAlongsideTransition:^(id context) { // Применяем скругление углов при изменении ориентации UIWindowScene *windowScene = (UIWindowScene *)self.view.window.windowScene; Ориентация UIInterfaceOrientation = windowScene.interfaceOrientation; если (UIInterfaceOrientationIsLandscape (ориентация)) { [weakSelf.mainViewContainer roundSpecificCorners:UIRetCornerTopLeft | UIRectCornerTopRight withRadius:10.0]; } еще { [weakSelf.mainViewContainer roundSpecificCorners:UIRetCornerTopLeft | UIRectCornerTopRight withRadius:10.0]; } } завершение: ноль]; [супер viewWillTransitionToSize: размер withTransitionCoordinator: координатор]; } @конец @implementation UIView (CustomLoader) // Другие функции здесь... - (void)roundSpecificCorners:(UIRetCorner)углы withRadius:(CGFloat)radius { // Применяем маску слоя со скруглением углов CAShapeLayer *maskLayer = [слой CAShapeLayer]; MaskLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:углы angularRadii:CGSizeMake(радиус, радиус)].CGPath; self.layer.mask = MaskLayer; // Настраиваем autoresizingMask, чтобы разрешить изменение размера self.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin; } Почему происходит такое поведение и как его исправить, чтобы представление охватывало весь экран без каких-либо дополнительных полей?

вот изображение
Изображение


мое представление создано с помощью графического интерфейса. Это изображение моего стека представлений, последнее представление — mainViewContainer.
Изображение

Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»