2014-09-02 32 views
10

Tôi đã thử sử dụng [[UIScreen mainScreen] bounds] để có kích thước màn hình của iPhone có thể thay đổi kích thước trên trình mô phỏng Xcode 6. Nhưng nó không tính đến chiều rộng màn hình mới và chiều cao màn hình mà tôi gán cho nó.Nhận kích thước màn hình trên iOS 8

Có cách nào tốt hơn để có kích thước màn hình không? Ngay cả khi tôi thiết lập kích thước màn hình để 320x800 các [[UIScreen mainScreen] bounds] trả tôi (CGRect) $0 = origin=(x=0, y=0) size=(width=768, height=1024)

enter image description here

+1

Trong một bộ điều khiển xem có bạn đã thử self.view.bounds? – WMios

Trả lời

16

Do sau

CGRect Rect = [[UIScreen mainScreen] giới hạn];

Vì vậy, nó sẽ bảo toàn các giới hạn trong trực tràng. thử một lần.

+1

Bạn cần xóa * để làm việc này. Nó ném một lỗi khác. –

+0

Điều này không hoạt động khi sử dụng iOS 8.4.1 trên iPhone 5. Đang phát hiện kích thước màn hình của iPhone 4/4S – user2924482

1

Điều này có trong iOS8 và iOS9. Không chắc khoảng 7 đã không kiểm tra:

var screenWidth: CGFloat { 
    if UIInterfaceOrientationIsPortrait(screenOrientation) { 
     return UIScreen.mainScreen().bounds.size.width 
    } else { 
     return UIScreen.mainScreen().bounds.size.height 
    } 
} 
var screenHeight: CGFloat { 
    if UIInterfaceOrientationIsPortrait(screenOrientation) { 
     return UIScreen.mainScreen().bounds.size.height 
    } else { 
     return UIScreen.mainScreen().bounds.size.width 
    } 
} 
var screenOrientation: UIInterfaceOrientation { 
    return UIApplication.sharedApplication().statusBarOrientation 
} 

Đây là những bao gồm như là một chức năng tiêu chuẩn trong:

https://github.com/goktugyil/EZSwiftExtensions

2

Trong Swift 4.0, 3,0

let screenRect:CGRect = UIScreen.main.bounds 
Các vấn đề liên quan