Theo mặc định, statusbar trên iPhone X trông như thế này:Làm thế nào để có được một statusbar màu đen trên iPhone X trên iOS 11
Nhưng tôi muốn đạt được điều này:
Tôi đã thử đặt preferredStatusBarStyle
thành lightContent
nhưng chỉ hoạt động sau khi đặt nền phía sau thanh trạng thái thành màu đen.
Để sửa các góc tròn, tôi đã kết thúc thêm một chế độ xem phụ khác với các góc được làm tròn.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .black
let roundedView = UIView(
frame: CGRect(
x: 0,
y: UIApplication.shared.statusBarFrame.height,
width: view.frame.width,
height: view.frame.height
)
)
roundedView.layer.cornerRadius = 10
roundedView.layer.masksToBounds = true
roundedView.backgroundColor = .white
view.addSubview(roundedView)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 60))
label.text = "Black statusbar!"
label.textAlignment = .center
roundedView.addSubview(label)
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
}
Tôi tự hỏi nếu đây là cách tiếp cận tốt nhất .. phải có cách tốt hơn để đạt được điều này.
CẬP NHẬT
Đây là một ý tưởng khủng khiếp vì:
- Như @Moritz điểm ra, Apple's guidelines rõ ràng cấm này:
Đừng ma sk hoặc gọi sự chú ý đặc biệt đến các tính năng hiển thị chính. Không tìm cách giấu góc tròn, cảm biến nhà ở hoặc chỉ số của thiết bị để truy cập Màn hình chính bằng cách đặt các thanh màu đen ở đầu và cuối màn hình . Không sử dụng các đồ trang sức hình ảnh như dấu ngoặc, hình bezels, hình dạng hoặc văn bản hướng dẫn để gọi đặc biệt chú ý đến các khu vực này.
Các góc tròn ở phía trên cùng của giao diện có thể trông đẹp, nhưng bạn sẽ phải thêm ngoại lệ trong mã để đảm bảo các góc tròn không được hiển thị trên iPhone khác. Bạn sẽ cần phải đặt điều này trong tất cả các ViewControllers/Storyboards của bạn .. Đó không phải là tuyệt vời như vậy.
Các góc được làm tròn ở cuối chế độ xem sẽ xuất hiện ngay trong ảnh chụp màn hình, nhưng các góc ở trên cùng (đặt thủ công) sẽ không. Điều này sẽ rất xấu khi người dùng chia sẻ ứng dụng của bạn.
khu vực an toàn đang gây ra một toàn bộ rất nhiều rắc rối đã có khả năng tương thích ngược, đây chỉ là sẽ trở thành nhiên liệu trong ngọn lửa. – Annjawn