iOS 9 UISegmentedControl с разтегнато векторно изображение

Моето приложение има редица бутони в навигационната си лента. Това са всички UISegmentedControls с един сегмент, обвит в UIBarButtonItems. Някои от тях имат изображения, които добавям чрез каталога с активи на моя проект, и всички те имат ширина 50.

Използвам Photoshop, за да създам моите изображения на бутони и да ги запазя като PDF, за да мога да ги използвам като векторни изображения в Xcode. Самите икони са с размери 30х20.

Проблемът е, че изображението изглежда леко отклонено. Има няколко малки кутии с граници от 1px и изглеждат опънати вертикално. Опитах това, което според мен е всяка комбинация от ширина (между 30 и 50) и височина (между 20 и 44), включително квадрат (30x30, 36x36 и т.н.) и 2:1 (50x25, 48x24, 40x20 и т.н.) и всякакви странни измерения и нищо не изглежда точно както трябва. Опитах също да удвоя размерите, но изображението просто става много по-вертикално компресирано.

Въпросът ми е: каква е точната резолюция за моя .psd файл, така че векторът да не изглежда разтегнат по някакъв начин? Изглежда еднакво зле в моя каталог с активи, на iPad Pro и на iPhone 6.


person Clayton Combe    schedule 17.12.2015    source източник


Отговори (1)


Можете да използвате следния код, за да зададете поле около вашето изображение, когато настройвате изображението:

yourSegmentedControl.setImage(yourImage.resizableImage(withCapInsets: .init(top: 0, left: 10, bottom: 0, right: 10), resizingMode: .stretch), forSegmentAt: 0)

Можете да промените стойностите на "отгоре", "отляво", "отдолу" и "отдясно", както желаете. По този начин можете да зададете всеки раздел на изображението, както желаете. Това проработи при мен, надявам се да помогне!

person AW5    schedule 20.12.2016