it-swarm.com.ru

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

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

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

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

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

Спасибо!

166
double07

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

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

#import <QuartzCore/QuartzCore.h>

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

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

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

409
devsri

Вы можете достичь с помощью этих атрибутов RunTime

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

спасибо 

112
Krutarth Patel

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

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

 DCKit: rounded button

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

14
Andrey Gordeev

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

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

 enter image description here

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

8
Javier Calatrava Llavería

Импорт платформа 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;
7
iAnkit
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
5
Vinay Mahipal

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

Цель C Решение

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

Swift 4 Solution

YourBtn1.layer.cornerRadius = YourBtn1.Frame.size.width/2
YourBtn1.layer.borderColor = UIColor.black.cgColor
YourBtn1.layer.borderWidth = 1.0
3
iOS Lifee

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

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

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

2
elp

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

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

 yourButtonOutletName.layer.cornerRadius = 0.3 *
        yourButtonOutletName.frame.size.height
2
Kiran jadhav

Для Свифта:

button.layer.cornerRadius = 10.0
2
pableiros

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

1
Andy A

Попробуйте мой код. Здесь вы можете установить все свойства UIButton, такие как цвет текста, цвет фона, радиус угла и т.д.

extension UIButton {
    func btnCorner() {
        layer.cornerRadius = 10
        clipsToBounds = true
        backgroundColor = .blue
    }
}

Теперь звоните так

yourBtnName.btnCorner()
0
iOS

Для iOS Swift 4 

button.layer.cornerRadius = 25;
button.layer.masksToBounds = true;
0
Jayesh Nai