2012-04-14 26 views
16

Vì vậy, khi người dùng nhấp vào một nút trong ứng dụng của tôi, tôi muốn tạo chế độ xem mới với chỉ báo hoạt động và bao phủ toàn bộ màn hình với nó cho đến khi thao tác nút kết thúc.Làm cách nào để chế độ xem chỉ báo hoạt động của tôi bao gồm tất cả màn hình?

Tuy nhiên, hoạt động xem chỉ số của tôi là bao gồm chỉ bên trong một cái nhìn bảng, nó trông như thế này:

enter image description here

Làm thế nào để làm cho nó bao gồm toàn bộ màn hình? Bao gồm bộ điều khiển điều hướng và thanh công cụ xem bảng.

Đây là mã của tôi, tôi sử dụng để tạo ra các quan điểm:

self.overlayView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; 
self.overlayView.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5]; 
self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
self.activityIndicator.center = self.overlayView.center; 
[self.overlayView addSubview:self.activityIndicator]; 
[self.activityIndicator startAnimating]; 
[self.tableView addSubview:self.overlayView]; 

Trả lời

21

Thay đổi

[self.tableView addSubview:self.overlayView]; 

Để

[self.navigationController.view addSubview:self.overlayView]; 

Đặt rect của lớp phủ cho phù hợp.

+2

+1 vì điều này cũng sẽ xoay đúng cách (giải pháp shabzco của sẽ không). – Till

+0

@CodaFi Cảm ơn, nó đã hoạt động. Nhưng làm cách nào tôi có thể xóa chế độ xem? Bây giờ khi tôi [self.activityIndicator removeFromSuperview]; [self.overlayView removeFromSuperview]; nó không hoạt động. –

+1

Tôi đã thêm chế độ xem lớp phủ của mình bằng thẻ: overlayView.tag = 1 và sau đó sử dụng thẻ để xác định lớp phủ để xóa lớp phủ: [[self.navigationController.view viewWithTag: 1] removeFromSuperview]; – JanB

5

Làm điều này:

[[UIApplication sharedApplication].keyWindow addSubview:self.overlayView]; 
Các vấn đề liên quan