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

Я новичок в разработке Iphone.

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

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

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

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

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

.час

  #import  -(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]; 

результат

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

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

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

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

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

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

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

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

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

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

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

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

 myButton.clipsToBounds = YES; myButton.layer.cornerRadius = myButton.layer.frame.size.width/2; 
 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]; 

Используя 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"); } 
 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) } 

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

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

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

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

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

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

делать

 [UIButton buttonWithType:UIButtonTypeCustom]; 

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

  button.layer.cornerRadius = button.bounds.size.width/2 / 2.0 
  • Рисование формы волны с помощью AVAssetReader
  • Почему NSError нуждается в двойной косвенности? (указатель на указатель)
  • Как написать простой метод Ping в Cocoa / Objective-C
  • Когда вы делаете подчеркивание перед переменной экземпляра?
  • Сортировка NSArray строк или объектов даты
  • applicationWillEnterForeground против applicationDidBecomeActive, applicationWillResignActive vs. applicationDidEnterBackground
  • target переопределяет настройки FRAMEWORK_SEARCH_PATHS
  • Как я могу получить точное время, например, в миллисекундах в Objective-C?
  • Core-Data iPhone: не удалось найти NSManagedObjectModel
  • iTunes Connect API
  • Создание UIImage в форме круга
  • Давайте будем гением компьютера.