2009-03-31 30 views
8

Tôi đang chạy vào trường hợp tôi có tài liệu HTML trong ứng dụng sử dụng nền tối, nhưng chỉ báo cuộn mặc định cho UIWebView sẽ bị mất trong nền đó. Sau đây là một ví dụ về điều này:Bạn có thể yêu cầu UIWebView sử dụng kiểu chỉ báo màu trắng không?

Image of UIWebView dark scroller http://www.sunsetlakesoftware.com/sites/default/files/so-webview.jpg

Với UIScrollView, mà UIWebView giống trong hành vi của nó, bạn có thể thiết lập thuộc tính indicatorStyle để UIScrollViewIndicatorStyleWhite, mà kết quả trong các hành vi mong muốn:

alt text http://www.sunsetlakesoftware.com/sites/default/files/so-scrollview.jpg

Tôi dường như không thể tìm thấy thuộc tính tương tự trong giao diện tiếp xúc cho UIWebView. Có một thủ thuật CSS hay cách khác để buộc chỉ báo cuộn sang kiểu nhẹ hơn không?

Trả lời

13

Bắt đầu từ iOS 5.0 trở đi, ngay bây giờ có thể tùy chỉnh các hành vi di chuyển của xem web bằng cách truy cập vào 'scrollview' tài sản để đạt được các chức năng mong muốn:

webView.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite; 
1

Quét các bản xem trước và thử nghiệm cho UIScrollView. Sau đó, bạn có thể đặt chỉ số theo chương trình.

+2

Thật không may, UIWebView sử dụng một UIScroller để xử lý di chuyển nội bộ của mình (được xem bằng cách duyệt qua phân cấp chế độ xem nội bộ). Đây là một lớp học được định nghĩa riêng, vì vậy thật là một ý tưởng tồi khi chạm vào nó. –

1

Không có API công khai cho điều này trong SDK 2.x. Nộp một lỗi/trường hợp/radar yêu cầu nó trong 3.0.

+0

Tôi sợ nhiều, nhưng tôi hy vọng rằng ai đó có một mẹo mà tôi đã bỏ lỡ. Tôi sẽ gửi yêu cầu nâng cao tính năng. –

6

Nếu bạn muốn quét các subviews và cố gắng một cách duyên dáng thất bại nếu một cái gì đó thay đổi trong tương lai này hiện đang hoạt động:

//set a white scroll bar 
    for (UIView *subview in [webView subviews]) { 
     if ([subview isKindOfClass:NSClassFromString(@"UIScroller")] || [subview isKindOfClass:NSClassFromString(@"UIScrollView")]) { 
      if ([subview respondsToSelector:@selector(setIndicatorStyle:)]) { 
       [(UIScrollView *)subview setIndicatorStyle:UIScrollViewIndicatorStyleWhite]; 
      } 
      break; 
     } 
    } 

Mặc dù điều thể vẫn phá vỡ trong tương lai nếu setIndicatorStyle: thay đổi để mong đợi một giá trị không được liệt kê ... nhưng tôi nghi ngờ điều đó sẽ xảy ra.

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