Как закруглить углы кнопки

У меня есть прямоугольное изображение (jpg) и вы хотите использовать его для заполнения фона кнопки с закругленным углом в xcode.

Я написал следующее:

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
CGRect frame = CGRectMake(x, y, cardWidth, cardHeight);
button.frame = frame;
[button setBackgroundImage:backImage forState:UIControlStateNormal];

Однако кнопка, которую я получаю с этим подходом, не имеет округленных углов: вместо этого простой прямоугольник выглядит точно так же, как и исходное изображение. Как я могу получить изображение с закругленным углом, чтобы представить мою кнопку?

Спасибо!

Ответ 1

Я думаю, что у меня возникла ваша проблема, я попробовал следующее решение с UITextArea, и я полагаю, что это будет работать и с UIButton.

прежде всего импортируйте это в свой .m файл -

#import <QuartzCore/QuartzCore.h>

а затем в вашем методе loadView добавьте следующие строки

    yourButton.layer.cornerRadius = 10; // this value vary as per your desire
    yourButton.clipsToBounds = YES;

Надеюсь, это сработает для вас, и если да, то общайтесь.

Ответ 2

Вы можете достичь этим атрибутами RunTime

enter image description here

мы можем сделать пользовательскую кнопку. Просто см. скриншот прилагается.

любезно обратите внимание:

в атрибутах времени выполнения, чтобы изменить цвет границы, следуйте этой инструкции

  • создать класс категории CALayer

  • в h файле

    @property(nonatomic, assign) UIColor* borderIBColor;
    
  • в файле m:

    -(void)setBorderIBColor:(UIColor*)color {
        self.borderColor = color.CGColor;
    }
    
    -(UIColor*)borderIBColor {
        return [UIColor colorWithCGColor:self.borderColor];
    }
    

теперь, чтобы установить скриншот проверки цвета рамки

обновленный ответ

спасибо

Ответ 3

Вы можете проверить мою библиотеку под названием DCKit. Это написано в последней версии Swift.

Вы можете напрямую создать закругленную угловую кнопку/текстовое поле из конструктора интерфейса:

DCKit: закругленная кнопка

В нем также есть много других интересных функций, таких как текстовые поля с проверкой, элементы управления с границами, пунктирные границы, круговые и волосные взгляды и т.д.

Ответ 4

Импортировать структуру QuartCore, если она отсутствует в вашем существующем проекте, а затем импортировать #import <QuartzCore/QuartzCore.h> в viewcontroller.m

UIButton *button = [[UIButton buttonWithType:UIButtonTypeRoundedRect]];
CGRect frame = CGRectMake(x, y, width, height); // set values as per your requirement
button.layer.cornerRadius = 10;
button.clipsToBounds = YES;

Ответ 5

Нажатие на пределы радиуса угла до круга:

    self.btnFoldButton.layer.cornerRadius = self.btnFoldButton.frame.height/2.0;

введите описание изображения здесь

Если рамка кнопки представляет собой квадрат, это не имеет значения frame.height или frame.width. В противном случае используйте самый большой из них.

Ответ 6

UIButton* closeBtn = [[UIButton alloc] initWithFrame:CGRectMake(10, 50, 90, 35)];
//Customise this button as you wish then
closeBtn.layer.cornerRadius = 10;
closeBtn.layer.masksToBounds = YES;//Important

Ответ 7

Если вы хотите закругленный угол только в один угол или два угла и т.д.... прочитайте это сообщение:

[ObjC] - UIButton с закругленным углом - http://goo.gl/kfzvKP

Это подкласс XIB/Storyboard. Импортируйте и установите границы без кода записи.

Ответ 9

Первая ширина набора = 100 и высота = 100 кнопок

YourBtn1.layer.cornerRadius=YourBtn1.Frame.size.width/2;
YourBtn1.layer.borderColor=[uicolor blackColor].CGColor;
YourBtn1.layer.borderWidth=1.0f;

Ответ 10

Для Swift:

button.layer.cornerRadius = 10.0

Ответ 11

обновлен для Swift 3:

используется ниже кода, чтобы сделать угол UIButton круглым:

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height