Подтвердить что ты не робот

Как создать круглую кнопку?

Я хочу создать круглую круглую кнопку. Эта кнопка должна выглядеть как круг.

Этот код дает круглую прямоугольную кнопку.

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame     = CGRectMake(100, 100, 100, 30);
UIImage  *image  = [UIImage imageNamed:@"01.png"];
[button setImage:image forState:UIControlStateNormal];
[image release];

Я понял, как создать закругленную прямоугольную кнопку, но я хочу создать круглую кнопку. Что мне нужно изменить?

4b9b3361

Ответ 1

Протестированный код:

.h

 #import <QuartzCore/QuartzCore.h>

-(void)roundButtonDidTap:(UIButton*)tappedButton;

.m

#define ROUND_BUTTON_WIDTH_HEIGHT YourButtonWidthToBeSetHere

-(void)roundButtonDidTap:(UIButton*)tappedButton{

    NSLog(@"roundButtonDidTap Method Called");

}



UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

[button setImage:[UIImage imageNamed:@"TimoonPumba.png"] forState:UIControlStateNormal];

[button addTarget:self action:@selector(roundButtonDidTap:) forControlEvents:UIControlEventTouchUpInside];

//width and height should be same value
button.frame = CGRectMake(0, 0, ROUND_BUTTON_WIDTH_HEIGHT, ROUND_BUTTON_WIDTH_HEIGHT);

//Clip/Clear the other pieces whichever outside the rounded corner
button.clipsToBounds = YES;

//half of the width
button.layer.cornerRadius = ROUND_BUTTON_WIDTH_HEIGHT/2.0f;
button.layer.borderColor=[UIColor redColor].CGColor;
button.layer.borderWidth=2.0f;

[self.view addSubview:button];

Результат

enter image description here

Геометрия в этом понятии

enter image description here

Ответ 2

Вариант раскадровки (должен применяться к Swift или ObjC) -

Если вы предпочитаете работать в раскадровки, есть еще один вариант.

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

Во-вторых, введите следующие атрибуты. ВАЖНО - сделайте значение вашего слоя layer.cornerRadius равным половине вашей ширины.

Затем, когда вы запустите приложение, ваша кнопка будет круглой.

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

Ответ 3

Попробуй, это сработало для меня. Это сделает вашу кнопку или любой вид в круглой форме, только если вы взяли ее в квадрате. Ширина должна быть равна высоте.

yourButton.layer.cornerRadius = yourButton.bounds.size.width/2;

Ответ 4

В Xcode 7.0.0 на IOS 8 этот код отлично работает для меня. Если длина и высота рамки кнопок одинаковы.

myButton.clipsToBounds = YES;
myButton.layer.cornerRadius = myButton.layer.frame.size.width/2;

Ответ 5

UIButton *myButton=[UIButton buttonWithType:UIButtonTypeCustom];
myButton.frame = CGRectMake(50,50,30,30);
[myButton addTarget:self action:@selector(buttonEvent) forControlEvents:UIControlEventTouchUpInside];
[myButton setImage:[UIImage imageNamed:@"sarabjit.png"] forState:UIControlStateNormal];
[self.view addSubView:myButton];

Ответ 6

Использование Swift как ответ Vijay-Apple-Dev.blogspot:

let ROUND_BUTTON_WIDTH_HEIGHT YourButtonWidthToBeSetHere   

override func viewDidLoad() {
   super.viewDidLoad()

   var button = UIButton.buttonWithType(.Custom) as UIButton
   button.frame = CGRectMake(160, 100, ROUND_BUTTON_WIDTH_HEIGHT, ROUND_BUTTON_WIDTH_HEIGHT)

   button.layer.cornerRadius = ROUND_BUTTON_WIDTH_HEIGHT / 2.0
   button.layer.borderColor = UIColor.redColor().CGColor
   button.layer.borderWidth = 2.0

   button.setImage(UIImage(named:"TimoonPumba.png"), forState: .Normal)
   button.addTarget(self, action: "roundButtonDidTap", forControlEvents: .TouchUpInside)
   button.clipsToBounds = true

   view.addSubview(button)
}

func roundButtonDidTap() {
   NSLog(@"roundButtonDidTap Method Called");
}

Ответ 7

override func viewDidLoad() {
    super.viewDidLoad()

    let facebookButton = UIButton()
    facebookButton.frame = CGRectMake(30, 200, 150, 150)
    facebookButton.layer.cornerRadius = 75
    facebookButton.layer.masksToBounds = true
    self.view.addSubview(facebookButton)
    }

** Чтобы сделать круглую кнопку, вы должны указать ту же высоту и ту же ширину для кнопки, а половина значения должна быть указана радиусом угла ** введите описание изображения здесь

Ответ 8

Шаг 1. Используйте кнопку [UIButton buttonWithType:UIButtonTypeCustom], чтобы создать кнопку.

Шаг 2. CGRectMake(100, 100, 100, 30) представляет собой прямоугольную форму. Возможно, вы захотите использовать размер своего изображения, например:

CGRect frame = CGRectMake(100, 100, 0, 0);
frame.size = img.size;
button.frame = frame;

Ответ 9

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

Первый ответ (и только первый на # vijay-apple-dev), приведенный здесь, является правильным. Вам нужно закрепить границу рамки кнопки, чтобы она не срабатывала непосредственно за пределами изображения.

Ответ 10

сделать

[UIButton buttonWithType:UIButtonTypeCustom];

и попробуйте использовать свойство углового радиуса

   button.layer.cornerRadius = button.bounds.size.width/2 / 2.0