2013-09-24 4 views
11

Я просто обновился до XCode 5. Кнопки в моем приложении выглядят ОК в IB и на устройстве iOS 6, но на устройстве iOS 7 они выглядят так (они должны покрывать все черное пространство):Фон кнопки на ios7 сжимается, ios6 ok

enter image description here

у меня есть изображения как для не-сетчатки/сетчатки.

Я понятия не имею, что делать, потому что я ничего не менял в коде или IB.

EDIT:

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

EDIT2:

Теперь я установить оттенок цвета кнопки на «чистый цвет», и все кажется нормально (тень исчезла). Все еще не уверен, что изменилось в iOS 7, связанное с этим.

+0

в iOS 7, панель навигации по умолчанию является полупрозрачной, это означает, что рамка self.view отличается от 6. –

+0

Вы настраиваете кнопки в коде или в xib/раскадровке? Если код, пожалуйста, напишите – RyanG

+0

В IB. Если я устанавливаю кнопку, выбранную в IB, все выглядит нормально. – DixieFlatline

ответ

4

Руководство Human Interface конкретно обрисовать, как UIButtons системы типа работает по умолчанию. It explains that a system button:

  • Не имеет границ или фоновый вида по умолчанию ...
  • поддерживают пользовательские украшения, такие как границы или фоновое изображение (в добавить пользовательский внешний вид, используйте кнопки типа UIButtonTypeCustom и напряжения питания пользовательское фоновое изображение).

Однако UIButton HIG page предоставляет немного больше информации, а именно:

Если вы явно не установить оттенок цвета, кнопка будет наследовать оттенок цвета своего SuperView в.

Это объясняет, почему после смены кнопки на UIButtonTypeSystem вам внезапно придется сбросить цвет оттенка. В iOS7 (почти) все имеет оттенок цвета. A UIButtonTypeSystem более подходит для ваших нужд сейчас в iOS7 (немного боли, если есть много, чтобы изменить вручную, хотя ...)

Что касается того, почему кнопки сжимаются в iOS7 ... Я согласен с комментарием @ Joseph's относительно UIViewController просмотр кадров в iOS7. Вероятно, у вас есть определенное отношение к размеру кнопок, которые не играют хорошо, когда кадр ViewController изменяется в iOS7 (см. this SO question для обсуждения). Как посоветовали там, проверьте iOS7 transition guide, чтобы узнать, не идет ли что-то, что вы делаете в IB, против нового зерна iOS7.

0

[button setBackgroundColor:[UIColor colorWithRed:(255.0/255.0) green:(180.0/255.0)];.

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

[UIImage imageNamed:@".png"];

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