Изображение UIButton становится пикселизированным при выделении

#iphone #objective-c #uibutton #pixel #highlight

#iPhone #objective-c #uibutton #пиксель #выделить

Вопрос:

У меня есть UIButton (тип: пользовательский) в UIView, настроенном в построителе интерфейсов, добавьте к нему изображение для состояния по умолчанию с размерами сетчатки. Когда я пытаюсь использовать свой iPhone, я вижу версию изображения на сетчатке, когда я выделяю его, нажимая на него, оно становится пикселизированным при выделении.

Самое смешное, что когда я меняю изображение UIButton с помощью кода, ошибка с пикселизацией отсутствует.

Кто-нибудь знает обходной путь без загрузки всех моих изображений кнопок с помощью кода? спасибо!

Комментарии:

1. Проверьте документы для UIButton , чтобы узнать, как это сделать правильно. И я настоятельно рекомендую узнать, как разорвать вашу зависимость от Interface Builder. Вы будете только совершенствоваться как разработчик.

2. Я полностью не согласен с этим. Как не использовать предоставленные инструменты, улучшая себя как разработчика.

3. Я согласен с гиперболой. Когда я обновляю xCode, он много раз перепутывается, но без зависимости от interface Builder я продолжаю работать. Кроме того, перенос приложения также упрощается.

Ответ №1:

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

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

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

Другие вещи, которые нужно проверить: убедитесь, что обе версии изображения включены в проект.

Например. скажем, у вас есть «button_image.png» и «button_image@2x.png «. Убедитесь, что они оба находятся в проекте. Кроме того, когда вы указываете изображение в построителе интерфейса, используйте имя изображения стандартной четкости, cocoa автоматически выберет версию 2x — т. Е. Вы должны поместить «button_image.png» в качестве изображения вашей кнопки, а не «button_image@2x.png «

Надеюсь, это поможет