Tôi đã gặp sự cố khi làm việc này, không có nơi nào tôi thấy một ví dụ hoạt động trên web. Bây giờ cung cấp tiền thưởng về điều này vì nó làm tôi phát điên. Nó sẽ được dễ dàng, nhưng điều đó dường như không phải là trường hợp.Thay đổi chế độ xem UIBarButtonItem để minh bạch theo chương trình
Tôi muốn các nút trên UINavigationBar của mình được nửa công khai sao cho chúng cho phép nền của bất kỳ nội dung nào trên UINavigationBar hiển thị. Hiệu ứng này được nhìn thấy trong nhiều ứng dụng, ví dụ hình ảnh dưới đây. Bạn có thể thực hiện việc này bằng cách đặt nền tùy chỉnh trên mục mà tôi nghĩ là giải pháp không được chấp nhận vì nó yêu cầu bạn chuẩn bị hình ảnh trước và chúng sẽ không thể thích ứng với các nút biến vv. không tin rằng có một lý do để làm điều này, UIKit đã vẽ nền cho các nút này, chúng ta chỉ cần thay đổi nó. Giải pháp chính xác sử dụng các mục thanh và lượt xem được tạo bởi apis của Apple.
UIBarButtonItem không phải là lớp con UIView. Khi bạn tạo một và thêm nó vào một UINavigationBar, một số mã ở đâu đó trong khung công tác sẽ vẽ một khung nhìn cho nó. Các phương pháp khuôn khổ dường như chống lại bất cứ điều gì liên quan đến việc cho phép minh bạch của các mục thanh, chẳng hạn như thuộc tính tintColor.
Ví dụ, điều này không làm việc:
UINavigationItem *item = [[UINavigationItem alloc] init];
UIBarButtonItem *editButton = [[UIBarButtonItem alloc] initWithTitle:@"SUCKS" style:UIBarButtonItemStyleBordered target:self action:@selector(whatever:)];
editButton.tintColor = [UIColor colorWithWhite:0.4 alpha:0.3];
item.leftBarButtonItem = editButton;
Không có gì tôi làm sẽ làm cho UINavigationBar phép bán minh bạch cho các hạng mục quầy bar. Tôi tin rằng trong thời gian chạy chúng ta cần phải:
- Lấy hình ảnh cho mục thanh
- Mask nó cho minh bạch
- Đặt hình ảnh mới vào mục thanh
Nhưng tôi có không có thể nhận được hình ảnh khi chạy hoặc che dấu nó đúng cách. Làm thế nào để bạn làm điều này?
Tôi đang điều tra đề xuất của bạn, tôi không biết quá nhiều về Core Graphics nhưng các thư viện dường như ở mức độ thấp và cơ bản: IE không mạnh mẽ, trừ khi bạn biết làm thế nào để sử dụng họ IE: TẤN đọc, thực hành và học tập cần thiết. Trong hình ảnh ví dụ, có vẻ như hiệu ứng có thể đạt được với chế độ xem được làm tròn, bán mờ, nhưng cũng yêu cầu phải có đường viền xung quanh hình dạng. –
Trừ khi bạn có một mẫu mã làm việc, tôi nghĩ rằng những gì bạn đề nghị về việc sử dụng một cái nhìn tùy chỉnh chứa một rect bán trong suốt ... không hoạt động. Alpha bị bỏ qua khi UIBarButtonItem với chế độ xem tùy chỉnh được thêm vào thanh điều hướng. –
@ade bạn có thể tạo ra một hình ảnh có thể kéo giãn với các góc tròn và độ trong suốt, điều này sẽ làm việc cho tất cả các kích cỡ nút. Tôi nghĩ rằng đó có lẽ là những gì được yêu cầu ở đây. – jrturton