2013-05-28 4 views
0

У меня есть UIButton, тип которого установлен в «custom» в IB. В коде, кнопка отформатирован следующим образом:UIButton: почему видны закругленные углы?

self.btnScan.layer.borderColor = [[UIColor blackColor] CGColor]; 
self.btnScan.layer.borderWidth = 1.0f; 
self.btnScan.layer.backgroundColor = [[UIColor whiteColor] CGColor]; 
self.btnScan.layer.cornerRadius = 0.0f; 

В IOS-Simulator он отображается правильно, но когда я проверить на устройстве (IPAD 2), есть светло-серые закругленные углы в дополнение к фактическому черная некруглая граница. Смотрите фотографии:

Оригинальный размер: corners

увеличенный размер: corners enlarged

Я также попытался

[self.btnScan.layer setMasksToBounds:YES]; 

без успеха.

Как устранить эти серые закругленные углы? Любая помощь будет оценена по достоинству.

Редакция: Что может быть причиной появления этой ошибки только на устройстве, а не в симуляторе. Я также попробовал xCode очистить и переустановить приложение.

ответ

1

Спасибо за все ваши ответы, я уверен, что ваши предложения работают в 99,99% всех случаев. Но в моем специальном случае кажется, что xCode полностью перепутал.

Я перезапустил xCode несколько раз, дважды проверил все настройки (например, выходы) в IB и в коде. Я очистил проект. Я удалил приложение из iPad и переустановил его. Я даже создал несколько новых кнопок в xib, у которых была такая же проблема.

Единственное, что помогло, в конце концов, состояло в том, чтобы удалить xib и воссоздать его с нуля. Даже жесткое это может быть не самое красивое решение, оно решило проблему. Может быть, это помогает кому-то.

-1
button.opaque = NO; 
button.backgroundColor = [UIColor clearColor]; 

Не видел UIButton обычай ... Надеюсь, что это помогает ...

Попробуйте это:

#import <QuartzCore/QuartzCore.h> 
yourButton.layer.cornerRadius = 10; // this value vary as per your desire 
yourButton.clipsToBounds = YES; 
+0

Как я уже сказал, тип buttonType установлен в обычном режиме в IB. Я не могу установить это в коде, потому что это свойство readonly. – Chris

+0

попробуйте это сейчас ... – lakesh

+0

Пробовал. Нет успеха ... – Chris

0

Это работает собственно на мой end.So я думаю, что вы сделав ошибку в вашем коде или xib

См. на этом изображении.

enter image description here

+0

Просто попробовал. Не работает. Все тот же ... – Chris

+0

[self.btnScan setBackgroundColor: [UIColor whiteColor]]; – TomCobo

+0

Также не работает с whiteColor. – Chris

2

Очевидно его еще стандарт UIButtonTypeRoundedRect. Что-то не так с инициализацией. Двойная проверка IB и ваш код инициализации. Если кнопка обычная, вы ничего не увидите внутри.

Если он отображается только на устройстве, возможно, на устройстве имеется старый файл nib. Удалите приложение, чем очистите в Xcode, чем переустановите.

+0

Я проверил тройной IB. Тип кнопки является «обычным» даже после очистки и перезапуска xCode. В IB я вижу пустую чистую кнопку без рамки или фона или что-то еще. Я снова удалил приложение с iPad и перекомпилировал его. Все такой же. Медленно становится отчаянным ... – Chris

+0

Вы проверяли розетки? Вы создали еще одну кнопку рядом с ней? Вы прокомментировали весь пользовательский код в viewController для тестирования? – calimarkus

+0

После того, как вы проверите свой код, вы можете программно изменить тип кнопки. – Balu

Смежные вопросы