[英]modalPresentationStyle formSheet issues on iphone XR, XS Max
[英]How to Handle iPhone X, Xs, Xs Max, Xr Screen Edge
我在GameScene中的iPhone X上繪制,縮放和定位路徑時遇到問題。 似乎frame.minX在屏幕的物理范圍之外(請參見比較在iPhone X和iPhone 8s上模擬的相同代碼的圖像)。 在繪制,縮放和定位各種SKShapeNode,SKNode,SKSpriteNode等時,如何處理此屏幕插圖? 我希望能夠在繪制時輕松參考屏幕的真實邊緣。
請注意,添加子視圖效果很好(如果使用UIScreen.main.bounds而不是frame,則UIViews,按鈕等都將與屏幕邊緣對齊)
我曾嘗試在參照框架和屏幕時繪制SKShapeNodes,但都無法精確地繪制iPhone X屏幕的真實邊緣和其他iPhone的真實邊緣。
override func didMove(to view: SKView) {
let shape = SKShapeNode()
shape.path = UIBezierPath(rect: CGRect(x: 0, y: 0, width: 200, height: 200)).cgPath
shape.fillColor = .green
shape.position = CGPoint(x: frame.minX, y: frame.maxY - shape.frame.height)
addChild(shape)
}
對於所有模擬,綠色方塊與屏幕的左邊緣完美對齊。 但是,在iPhone X,Xs,Xs Max和Xr上並非如此。
自然,在StackOverflow上提出問題后,我很快就能解決問題。 對於那些在頁面上偶然遇到類似問題的人:
問題在於如何根據屏幕尺寸繪制GameScene。 由於iPhone X的屏幕比例為〜19.5:9(其他iPhone上為16:9),因此邊框被裁剪。
要解決此問題,請在scene.scaleMode
.resizeFill
設置為.resizeFill
而不是.aspectFill
:
scene.scaleMode = .resizeFill
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.