Проблемы с применением пользовательских кодированных изображений к круглой кнопке Rect в Интерфейсном Разработчике - PullRequest
4 голосов
/ 10 января 2011

Я бегу по нескольким учебным пособиям, в которых описываются способы применения пользовательских изображений для кнопок UIB при программировании iPhone с использованием Obj-C.

Один метод, который мне нравится, - это поместить UIButton (Round Rect Button) в XIB с использованием Interface Builder, а затем в методе 'viewDidLoad' контроллера представления XIB оформить кнопку таким образом:

UIImage *ButtonImageNormal = [UIImage imageNamed:@"button_blue.png"];
UIImage *StretchableButtonImageNormal = [ButtonImageNormal stretchableImageWithLeftCapWidth:24 topCapHeight:24];
[self.Button setBackgroundImage:StretchableButtonImageNormal forState:UIControlStateNormal];

UIImage *ButtonImagePressed = [UIImage imageNamed:@"button_orange.png"];
UIImage *StretchableButtonImagePressed = [ButtonImagePressed stretchableImageWithLeftCapWidth:24 topCapHeight:24];
[self.Button setBackgroundImage:StretchableButtonImagePressed forState:UIControlStateHighlighted];

Проблема с этим методом заключается в том, что кнопка не теряет свой фон «Round Rect», а сбоку от кнопок вы все еще можете видеть белый цвет кнопки «Round Rect», выглядывающей сквозь пользовательские изображения.

Если, однако, я создаю пользовательскую кнопку с нуля, используя этот код:

UIButton *CustomButton = [UIButton buttonWithType:UIButtonTypeCustom];
[CustomButton setFrame:CGRectMake(20, 100, 280, 45)];
[CustomButton.titleLabel setFont:[UIFont boldSystemFontOfSize:15]];

[CustomButton setTitle:@"Custom Button" forState:UIControlStateNormal];
[CustomButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[CustomButton setBackgroundImage:[UIImage imageNamed:@"button_blue.png"] forState:UIControlStateNormal];

[CustomButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
[CustomButton setBackgroundImage:[UIImage imageNamed:@"button_orange.png"] forState:UIControlStateHighlighted];

[self.view addSubview:CustomButton];

Нет такого белого фона, выглядывающего сквозь.

Я действительно хотел бы использовать метод 'Rect Rect' для размещения и оформления кнопок, потому что я хотел бы видеть их позиции в Интерфейсном конструкторе. Есть ли метод, который мне нужно использовать, или свойство, которое мне нужно изменить, чтобы избавиться от белого фона кнопки «Round Rect» в коде.

Вот изображение, показывающее проблему:

alt text

Ответы [ 2 ]

4 голосов
/ 10 января 2011

Я нашел ответ!

Обычно вы тратите часы на поиски руководств, чтобы найти его сразу после публикации!

Просто измените тип кнопки на «Пользовательский» в Интерфейсном Разработчике, и никакого дополнительного кода не требуется!

alt text

0 голосов
/ 10 января 2011

Сделайте цвета по умолчанию для кнопки "чистый цвет", забавная черно-белая диагональ.

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