2017-02-22 5 views
0

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

enter image description here

Если сравнить его с Apple, примеры (стр.3 здесь https://developer.apple.com/wallet/Add-to-Apple-Wallet-Guidelines.pdf) текст значительно мал.

Код очень минимальный. У меня есть кнопка на раскадровке, из которой я беру рамку для своего PKAddPassButton.

+0

Здесь pkButton имеет button.frame. Вы пытались изменить это значение. –

+0

Я не уверен, что вы имеете в виду @Sahin. Я попытался отобразить его с разным размером, но он всегда выглядит так. –

ответ

3

Странно, что калибровка настолько неправильная, чтобы начать с. Я проверил, что изменение рамки кнопки не изменяет размер метки или значка.

Возможно, лучшим вариантом было бы применить масштабное преобразование к кнопке. Это будет работать:

let scale = CGFloat(floatLiteral: 0.75) 
    pkButton.transform = CGAffineTransform(scaleX: scale, y: scale) 

Я не обязательно рекомендую это, но я убедиться, что вы можете настроить размер шрифта вручную:

let label = pkButton.value(forKey: "singleLineLabel")! as! UILabel 
    let label2 = pkButton.value(forKey: "multiLineLabel")! as! UILabel 
    label.font = UIFont(name: label.font.fontName, size: 8) 
    label2.font = UIFont(name: label2.font.fontName, size: 8) 

Я не пробовал значок, но я подозреваю, вы можете сделать что-то подобное.

+0

Немного хакерский, но я собираюсь попробовать. Возможно, это единственный вариант. Мне кажется, что все на кнопке дважды масштабируется. Размер шрифта, изображение, а также угловой радиус выглядит вдвое большим. Интересно, есть ли одно свойство, которое может повлиять на него. –

+0

Это интересная мысль. Я изменяю свой ответ другим выбором - CGAffineTransform на кнопке. –

+0

Этот хак действительно работает очень хорошо. Если вы можете изменить свой ответ на использование масштаба CGFloat (floatLiteral: 0.75), так как этот масштаб делает его похожим на спецификации Apple Design. Также линия преобразования не работает для меня, поскольку в моем SDK нет такого метода. Я использую CGAffineTransformMakeScale (масштаб, масштаб) –

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