Я знаю, что этот вопрос уже отмечен галочкой. Но я столкнулся с этим сегодня и подумал, что все равно предложу свой ответ. Отмеченный галочкой ответ выше действительно помог мне, но мне также потребовались дополнительные эксперименты, чтобы понять, что на самом деле происходит.
Изображение кнопки сжимается только по оси x, а не по оси y. это потому, что он слишком высок для кнопки и сжимается, чтобы соответствовать. Но это не уменьшает его пропорционально. Только по вертикали. Так он выглядит растянутым. На самом деле он не растянут, что подразумевает его расширение. Вместо этого высота уменьшается. Знание разницы, я думаю, важно для понимания того, почему это происходит и как это исправить.
![введите здесь описание изображения](https://i.stack.imgur.com/lPByc.png)
Я сделал то же самое, что и ОП. Думая, что я поддерживаю сетчатку, я сделал свою иконку 40x40. У меня была зеленая галочка с альфа-каналом. Он был дополнен пустыми пикселями до размера 40x40. Приложение изменило его размер, чтобы он соответствовал доступной высоте кнопки. Но ширина осталась прежней. Так что стало где-то в пределах 40х30 или 40х20. Я думаю, что кнопка может справиться со значком высотой 30, но тогда она слишком велика для коробки, ИМХО.
OP уменьшил кнопку до 30x30, и это больше не хлюпает. Но это не лучшее решение. Потому что на самом деле это не кнопка сетчатки, когда вы это делаете. Он сжался, а затем снова увеличился на сетчатке.
Правильный ответ — назвать вашу версию высотой 40 пикселей с помощью @2x, а затем создать версию половинного размера (высотой 20 пикселей) и сохранить ее без @2x. Ширина может быть любой. Затем загрузите с помощью imageNamed: без указания @2x. Он будет использовать соответствующий png для устройства с сетчаткой или без сетчатки.
Следующее, что случилось со мной, это то, что рамка кнопки была слишком маленькой. Поэтому я увеличил размер холста в psd, чтобы увеличить ширину png до 80, чтобы сделать кнопку немного шире и более удобной для нажатия.
person
badweasel
schedule
18.11.2013