Я знаю, что у этого вопроса уже есть галочка с галочкой. Но я столкнулся с этим сегодня и подумал, что все равно предложу свой ответ. Помеченный ответ выше помог мне, но потребовались дополнительные эксперименты, чтобы выяснить, что на самом деле происходит.
Изображение кнопки сокращается только по оси x, а не по оси y. это потому, что он слишком высокий для кнопки и сжимает его, чтобы соответствовать. Но это не уменьшает его пропорционально. Только по вертикали. Так что кажется растянутым. Это на самом деле не растягивается - что подразумевает его расширение. Вместо этого высота уменьшается. Зная разницу, я думаю, важно понять, почему это происходит и как это исправить.
Я сделал то же самое, что и ОП. Думая, что я поддерживаю сетчатку, я сделал свою иконку 40х40. У меня была зеленая галочка с альфа-каналом. Он был дополнен пустыми пикселями до 40х40. Приложение изменило размеры, чтобы оно соответствовало доступной высоте кнопки. Но ширина осталась прежней. Так стало где-то в диапазоне 40х30 или 40х20. Я думаю, что кнопка может обрабатывать значок высотой 30, но тогда она слишком велика для коробки ИМХО.
ОП уменьшил кнопку до 30х30, и это больше не давило нажатия. Но это не лучшее решение. Потому что на самом деле это не кнопка сетчатки, когда вы делаете это. Он сжимается, а затем взорван на сетчатке.
Правильный ответ - назовите вашу версию высотой 40 пикселей с @ 2x, а затем сделайте версию половинного размера (20 пикселей) и сохраните ее без @ 2x. Ширина может быть любой. Затем загрузите с imageNamed: без указания @ 2x. Он будет использовать соответствующий PNG для устройства сетчатки или не сетчатки.
Следующее, что случилось со мной, было то, что рамка кнопки была слишком маленькой. Поэтому я увеличил размер холста в psd, чтобы увеличить ширину png до 80, чтобы сделать кнопку немного шире и более легко нажимаемой.