2011-01-21 34 views
6

Về cơ bản đây là hai câu hỏi:Làm thế nào để loại bỏ Popover mũi tên iPad và biên giới khung của nó

  1. Làm thế nào để loại bỏ iPad của xem popover của mũi tên?

  2. có cách nào để xóa đường viền đen của cửa sổ bật lên không?

Nếu không thể, bạn có thể đề xuất một cách để iPad hiển thị UIView (bật lên) ở đầu màn hình mà không có mũi tên và đường viền (có thể là đường viền trong suốt), vui lòng? cảm ơn rất nhiều.

Và tôi không nghĩ ModalView là một tùy chọn thích hợp vì nó không thể thay đổi kích thước và không thể bị loại bỏ bằng cách nhấp vào bên ngoài chế độ xem phương thức.

+0

Cảm ơn tất cả. Có vẻ như không có cách nào trực tiếp để loại bỏ chúng, phải tùy chỉnh cửa sổ bật lên. Điều tôi đang nghĩ là triển khai UIView toàn màn hình và thêm một Chế độ xem có kích thước nhỏ hơn ở trên cùng. để khi nó được hiển thị, nó hoạt động như một cửa sổ bật lên. – Aragon

Trả lời

2

Bạn không thể xóa chrome xung quanh cửa sổ bật lên. Đặt cược tốt nhất của bạn là thực hiện lại ý tưởng về một cửa sổ bật lên, nhưng sử dụng mã tùy chỉnh.

7

AFIK không có cách tích hợp để chỉ định "không có mũi tên" hoặc để có đường viền bật lên.

Đây là một hack, nhưng về cơ bản nó hoạt động. Trong bối cảnh của bộ điều khiển xem của bạn được quản lý bởi bộ điều khiển cửa sổ bật lên, trong viewWillAppear :, có được cửa sổ popup và loại bỏ các lớp đầu tiên, đó là những gì làm cho các mũi tên và biên giới:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear: animated]; 

    UIView* v = self.view.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIView 

    v = v.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIPopoverView 

    [[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer]; 
}  

Tôi cho rằng bạn có thể thử nghiệm với việc thêm lại lớp của riêng bạn để hiển thị nền/đường viền theo cách bạn muốn.

+1

Tuyệt vời, cảm ơn bạn. Một vài lưu ý: bạn cần phải '#import '. Ngoài ra, hãy nhớ loại bỏ trình điều khiển cửa sổ bật lên trước bất kỳ lần quay nào, nếu không bạn sẽ nhận được EXC_BAD_ACCESS. – martip

+0

Xóa lớp là một ý tưởng rất tồi và có thể bạn sẽ bị từ chối bởi táo khi gửi đến appStore. Hãy xem giải pháp này tại đây: https://github.com/werner77/WEPopover – oberthelot

7

Cách xóa mũi tên của chế độ xem cửa sổ bật lên của iPad?

Khi gọi -presentPopoverFromBarButtonItem: allowedArrowDirections :, chuyển 0 làm thông số thứ hai, thay vì bất kỳ hằng số nào. Đây không phải là tài liệu, nhưng Apple đang cho phép các ứng dụng trong App Store khi sử dụng cài đặt này.

+0

Điều đó có tác dụng.Tuy nhiên, cửa sổ bật lên được thay đổi kích thước và chiều rộng của nó không thể thay đổi nếu bạn sử dụng UIImagePicker làm chế độ xem nội dung. –

1
  • Bạn không thể xóa mũi tên hoặc đường viền. Nếu bạn thực hiện một số loại hack, như đề xuất của TomSwift, bạn có nguy cơ treotừ chối từ quả táo khi gửi ứng dụng của bạn cho appStore.

  • Bạn có thể triển khai cửa sổ bật lên tùy chỉnh của riêng mình như bộ điều khiển, theo đề xuất của Kevin. Bạn có thể tìm thấy một dự án mã nguồn mở đang hoạt động ở đây: https://github.com/werner77/WEPopover. Backgound và mũi tên có thể được loại bỏ từ một hoặc thiết lập như minh bạch.

Các vấn đề liên quan