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


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

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

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

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

спасибо!

11 157

11 ответов:

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

импортировать это в вашу .файл м -

#import <QuartzCore/QuartzCore.h>

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

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

надеюсь, что это работает для вас, и если да, общаемся.

Вы можете достичь с помощью этой среды выполнения атрибутов

enter image description here

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

пожалуйста, обратите внимание :

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

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

  2. в файле h

    @property(nonatomic, assign) UIColor* borderIBColor;
    
  3. в М файл:

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

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

updated answer

спасибо

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

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

DCKit: rounded button

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

толкаем до предела радиус угла вверх, чтобы получить круг:

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

enter image description here

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

импорт QuartCore framework если его нет в вашем существующем проекте, то импортируйте #import <QuartzCore/QuartzCore.h> in viewcontroller.м

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;
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

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

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

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

Для Swift:

button.layer.cornerRadius = 10.0

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

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

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

альтернативный ответ, который устанавливает границу тоже (что делает его более похожим на кнопку) здесь ... Как установить границу прямоугольника для пользовательского типа UIButton

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

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