Tôi đang cố điều chỉnh subviews
trong lớp con UIScrollView
, nhưng tôi không muốn làm phiền các chỉ báo cuộn. Có vẻ như không có bất kỳ giao diện nào để truy cập chúng và tôi muốn kiểm tra xem một khung nhìn có phải là một trong các chỉ báo cuộn hay không (để tôi có thể bỏ qua nó).Làm cách nào để loại trừ các chỉ số cuộn khi liệt kê các bản xem phụ của UIScrollView?
UIScrollView.h
tuyên bố hai Ivars này:
UIImageView* _verticalScrollIndicator;
UIImageView* _horizontalScrollIndicator;
... nhưng tôi đã cố gắng sau và có một mối liên kết lỗi:
for(UIView* v in self.subviews)
{
// Ignore the scroll-indicator views
if((v == _horizontalScrollIndicator) ||
(v == _verticalScrollIndicator))
{
continue;
}
// View is one of mine - do stuff to it...
}
của Apple rõ ràng là không muốn bạn rối tung với những, trong trường hợp họ nên làm một cái gì đó thông minh để các mảng trở về từ subviews
không bao gồm chúng (đi trên Apple, nó không phải là khó!), nhưng cho đến khi đó làm thế nào tôi có thể bỏ qua chúng?
Tôi đang viết một lớp con UIScrollView, vì vậy tôi không kiểm soát được các bản xem phụ khác. Tôi đã cố gắng ghi đè didAddSubview: và willRemoveSubview: để theo dõi, nhưng các chỉ số cuộn phải được thêm bình thường giống như bất kỳ chế độ xem nào khác vì chúng cũng kết thúc việc gọi chúng. – jhabbott
Tôi sẽ đi với @KurtRevis trên trang này. Giữ mảng của riêng bạn, duy trì nó bằng cách ghi đè addSubview: và removeSubview: (mà tôi không nghĩ rằng hệ điều hành gọi cho các chỉ số cuộn). Nếu bạn không muốn làm điều đó, thì câu trả lời nhanh chóng và không có sự phụ thuộc của Apple là gắn thẻ các bản phụ đề trên addSubview :. Khi bạn liệt kê các bản xem trước, hãy từ chối các bài đăng có thẻ. Nhược điểm ở đây là bạn sẽ làm hỏng các thẻ cho người dùng của lớp con, những người có thể cần các thẻ còn lại một mình. Các giải pháp khác mà tôi có thể nghĩ là tất cả đều phụ thuộc vào nội bộ của Apple. – danh
Apple sử dụng addSubView: để thêm các chỉ số cuộn nên điều này không thể thực hiện được. Ngoài ra bất cứ điều gì mà không muốn theo dõi các bản xem lại cũng nên theo dõi trong các phương thức insertSubview: *. – jhabbott