2016-12-03 87 views
4

我試圖改變iPad的弧線寬度的大小,如下所示,但它不工作。如何更改iPad中視圖中控件的大小?

func setup() { 

     let model = UIDevice.current.model 
     if model == "iPad" { 

      backgroundArcLayer.lineWidth = 36.0 
      backgroundArcLayer.fillColor = nil 
      backgroundArcLayer.strokeEnd = 2 
      layer.addSublayer(backgroundArcLayer) 
      frontArcLayer.lineWidth = 36.0 
      frontArcLayer.fillColor = nil 
      frontArcLayer.strokeEnd = 1.0 
      layer.addSublayer(frontArcLayer) 

     } 

     backgroundArcLayer.lineWidth = 18.0 
     backgroundArcLayer.fillColor = nil 
     backgroundArcLayer.strokeEnd = 1 
     layer.addSublayer(backgroundArcLayer) 
     frontArcLayer.lineWidth = 18.0 
     frontArcLayer.fillColor = nil 
     frontArcLayer.strokeEnd = 0.5 
     layer.addSublayer(frontArcLayer) 
    } 

我錯過了什麼?

+1

不要根據模型做任何事情。根據視圖的大小進行所有調整。 – rmaddy

+0

這些控件是用編程方式創建的內部視圖,所以我該如何做到這一點? – Coder221

回答

3

那麼,您正在覆蓋您在if聲明中設置的所有屬性,因爲沒有在else正文中使用其他方法。

+0

這樣一個基本的錯誤:( – Coder221

+0

我也想補充一下,檢查「model = iPad」真的不太好,蘋果可能會在未來改變這個屬性,並且你的代碼會被破壞 – GeneCode

+0

@GeneCode,那麼我該怎麼做。請提供一個例子,因爲裏面創建這些控件編程 – Coder221

1

您申報的iPhone和iPad全球範圍內爲您的項目中訪問的任何地方。然後嘗試這樣的:

let IsIPhone = UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.phone 
let IsIPad = UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad 

您可以查看iPhone和iPad這一點:

func setup() { 

    if IsIPad{ 

     backgroundArcLayer.lineWidth = 36.0 
     backgroundArcLayer.fillColor = nil 
     backgroundArcLayer.strokeEnd = 2 
     layer.addSublayer(backgroundArcLayer) 
     frontArcLayer.lineWidth = 36.0 
     frontArcLayer.fillColor = nil 
     frontArcLayer.strokeEnd = 1.0 
     layer.addSublayer(frontArcLayer) 

    }else{ 

     backgroundArcLayer.lineWidth = 18.0 
     backgroundArcLayer.fillColor = nil 
     backgroundArcLayer.strokeEnd = 1 
     layer.addSublayer(backgroundArcLayer) 
     frontArcLayer.lineWidth = 18.0 
     frontArcLayer.fillColor = nil 
     frontArcLayer.strokeEnd = 0.5 
     layer.addSublayer(frontArcLayer) 
    } 
} 

其良好的檢查iPad和iPhone。