Круглый UIButton - PullRequest
       19

Круглый UIButton

4 голосов
/ 20 марта 2009

Я хочу знать, возможно ли рисование круглой кнопки UIB (не скругленного прямоугольника).

Когда я добавляю круглое изображение в UIButton типа custom, оно выглядит как круглая кнопка. Но в тот момент, когда кнопка нажата, ее граница становится видимой, так что она выглядит как квадратная кнопка, а затем, когда щелчок заканчивается, он выглядит как круглая кнопка.
Я хочу, чтобы кнопка выглядела как круглая кнопка даже в тот момент, когда происходит щелчок. Это возможно?

Ответы [ 6 ]

9 голосов
/ 05 августа 2011

Проверенный код:

.h

    -(void)vijayWithApple; 

.m

   -(void)vijayWithApple{

            NSLog(@"vijayWithApple Called");
   }


UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

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

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

[button setTitle:@"Show View" forState:UIControlStateNormal];

button.frame = CGRectMake(135.0, 180.0, 40.0, 40.0);//width and height should be same value

button.clipsToBounds = YES;

button.layer.cornerRadius = 20;//half of the width

button.layer.borderColor=[UIColor redColor].CGColor;

button.layer.borderWidth=2.0f;

[self.view addSubview:button];

Результат

enter image description here

4 голосов
/ 21 марта 2009

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

В IB создайте UIB-кнопку типа Custom. Перейдите к разделу, в котором вы устанавливаете фоновое изображение, и установите для выпадающего меню значение «Все» на нормальное значение - теперь установите изображение на ваше несжатое изображение.

Затем измените раскрывающийся список на «Выбранный» и вставьте ваше нажатое изображение.

Теперь измените тип заливки, чтобы он соответствовал аспекту, и сделайте кнопку квадратной. Используйте как обычный UIButton в любом месте. Конечно, вы также можете легко сделать все это программно с помощью аналогичных шагов (установка изображений для UIControlStateNormal и UIControlStateSelected).

2 голосов
/ 19 июля 2011
UIButton *but=[UIButton buttonWithType:UIButtonTypeCustom];

but.layer.cornerRadius=50;
2 голосов
/ 20 марта 2009

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

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

ОБНОВЛЕНИЕ в ответ на комментарий:

Если я правильно понял, вы ищете не круглую кнопку, а скорее изображение, которое можно активировать нажатием (touchable).

Вы можете использовать UIImageView и метод touchesBegan.

ОБНОВЛЕНИЕ 2:

Подождите секунду. О какой кнопке радио мы говорим? Почему-то я думал, что вы пытаетесь подражать настоящему радио. Если вы говорите о группе радиокнопка , используйте UISegmentedControl или UIPicker.

0 голосов
/ 22 мая 2012

воспользуйтесь помощью этого сайта для создания Round Button на iPhone. Вы можете получить много пользовательских элементов управления:)

http://www.cocoacontrols.com/controls

http://www.cocoacontrols.com/platforms/ios/controls/uiglossybutton

H @ PPY CODING!

Спасибо и всего наилучшего, Гаутам Тивари

0 голосов
/ 20 марта 2009

Из того, что я знаю о SDK (по общему признанию, у меня очень мало опыта помимо учебников по книгам / скринкастам), вы должны создать свой собственный элемент управления, чтобы иметь переключатель. Есть несколько предложений о том, как реализовать этот вопрос в .

Тем не менее, с точки зрения пользователя я чувствую, что было бы лучше придерживаться нативных элементов управления. Пользователи iPhone привыкли к определенным элементам управления (то есть UITableViews или UIPickerViews) для этого типа взаимодействия. Отклонение от практически универсальных соглашений пользовательского интерфейса приводит к тому, что пользовательский опыт становится более резким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...