2016-01-22 3 views
1

Я использую настраиваемое изображение в качестве элемента панели. Выглядит хорошо на экранах iPhone, но, кажется, пикселируется при работе на большом дисплее (iPads).Пользовательский UIImage как UIBarButtonItem, отображающий пикселированные/размытые

iPad2:

iPad2 simulator

iPhone 6S:

iPhone 6S simulator

Вот мой код:

// Set Custom Image for Bar Button Item 
    let button = UIButton(type: .Custom) 
    button.setImage(UIImage(named: "Share.png"), forState: UIControlState.Normal) 
    button.addTarget(self, action:"shareButtonClicked", forControlEvents: UIControlEvents.TouchDragInside) 
    button.frame=CGRectMake(0, 0, 30, 30) 
    let barButton = UIBarButtonItem(customView: button) 
    self.navigationItem.rightBarButtonItem = barButton 

Как я должен установить масштаб изображения?

ответ

2

iPhone 6s имеет сетчатый дисплей. IPad 2 - нет. Попробуйте это на любой версии iPad позже этого, и это будет сетчатый дисплей, и я уверен, он не будет отображаться как pixelated.

Возможно, вы сможете улучшить изображение, используемое на дисплее не-сетчатки, на choosing the resampling method.

+0

Я надеялся, что это проблема масштабирования, которую я могу контролировать, но выглядит так, как будто вы правы, так как это выглядит хорошо на iPad Retina. Другие UIButtons не отображаются нигде рядом с пикселями, но, возможно, это связано с использованием пользовательского изображения для этого? Спасибо за понимание, хотя! – thedonniew

+0

Ну, вы указываете кадр в точках, поэтому я предполагаю, что он масштабируется соответствующим образом, чтобы заполнить этот кадр (в зависимости от вашего метода заполнения). Примите мой ответ, если это решит проблему для вас. Вы можете создать сглаженную версию изображения кнопки для iPad2. Самый простой способ сделать это - взять изображение сетчатки и переделать его на меньший размер. Таким образом, диагональные линии будут иметь средние тона вдоль краев. –

+1

Цените помощь! – thedonniew