2016-10-25 3 views
0

Я рисую графики для приложения, которое предназначено для iPad и iPhone. Мне удалось масштабировать все размеры так, чтобы графики, оси и т. Д. Правильно масштабировались для разных устройств. Но я не уверен, как масштабировать ширину линии. Так что, если я пишу:Как установить ширину линии для разных устройств

context?.setLineWidth(4.0) 

линия появится довольно толстый на iPhone 5, но тоньше на с IPad. Я бы хотел, чтобы он выглядел тоньше на небольших устройствах.

+0

HTTP: //stackoverflow.com/questions/24059327/detect-current-device-with-ui -user-interface-idiom-in-swift? – Larme

+1

Примите во внимание масштаб устройства. то есть. 'UIScreen.mainScreen(). Scale'. Возвращает 1.0 для устройств без сетчатки, таких как iPad 2, 2.0 для устройств сетчатки, таких как iPhone 5, 3.0 для 6 плюс и 7 плюс и т. Д. –

+0

Если мне нужна одна пиксельная линия, я использую '1/UIScreen.mainScreen() .scale'. У меня есть подкласс 'NSLayoutConstraint', который преобразует его' константу' таким образом, поэтому я могу просто установить правильные значения _in pixels_ в раскадровке. – Sulthan

ответ

1

Изменение LineWidth, как динамическое значение, основанное на графике или ширины экрана, попробуйте как этот

iPhone 5

let graphWidth = 320.0 //set screenWidth 
var lineWidth = (graphWidth*(1.5/100)) // here you can change the percentage value 
print("Line Width == > \(Int(lineWidth))") //Line Width == > 4 

iPhone 6

let graphWidth = 375.0 // be dynamic graphWidth = graph width 
var lineWidth = (graphWidth*(1.5/100)) 
print("Line Width == > \(Int(lineWidth))") //Line Width == > 5 
Смежные вопросы