Làm thế nào người ta có thể có được kích thước của màn hình trong iOS?
Vấn đề với mã mà bạn đã đăng là bạn đang tính kích thước khung nhìn để khớp với màn hình và như bạn đã thấy không phải lúc nào cũng như vậy. Nếu bạn cần kích thước màn hình, bạn nên nhìn vào đối tượng đại diện cho màn hình, như thế này:
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
Cập nhật cho chế độ xem chia nhỏ: Trong các bình luận, Dmitry đã hỏi:
Làm cách nào tôi có thể nhận được kích thước của màn hình trong chế độ xem chia?
Mã được đưa ra ở trên báo cáo kích thước của màn hình, ngay cả trong chế độ chia màn hình. Khi bạn sử dụng chế độ chia màn hình, cửa sổ ứng dụng của bạn sẽ thay đổi. Nếu đoạn mã trên không cung cấp cho bạn thông tin mà bạn mong đợi, thì giống như OP, bạn đang nhìn nhầm đối tượng. Tuy nhiên, trong trường hợp này, bạn nên nhìn vào cửa sổ thay vì màn hình, như thế này:
CGRect windowRect = self.view.window.frame;
CGFloat windowWidth = windowRect.size.width;
CGFloat windowHeight = windowRect.size.height;
Swift 4.2
let screenRect = UIScreen.main.bounds
let screenWidth = screenRect.size.width
let screenHeight = screenRect.size.height
// split screen
let windowRect = self.view.window?.frame
let windowWidth = windowRect?.size.width
let windowHeight = windowRect?.size.height