2010-11-01 30 views
7

Tôi đang tìm một hướng dẫn hoặc một số ý tưởng để tạo một bộ điều khiển tùy chỉnh giống như trong ứng dụng Twitter dành cho iPad, ý tôi là các trang xếp chồng với một menu chính ở bên trái. Cảm ơn trước sự giúp đỡ nào!!UIScrollView giống như ứng dụng Twitter dành cho iPad

+0

Đó là một công việc khá căng thẳng. Nếu bạn nghĩ ra những ý tưởng hay, tôi đề nghị bạn đăng tác phẩm của mình trong một repo Github để tất cả chúng ta có thể làm việc cùng nhau và cải thiện nó. –

Trả lời

2

Tôi có giải pháp cho việc này.

Đặt chế độ xem bảng làm trình đơn thanh bên ở bên trái. Đặt chế độ xem cuộn lên trên cùng. Thêm nội dung vào chế độ xem cuộn.

Chế độ xem cuộn sẽ bao gồm chế độ xem bảng. Đặt chiều rộng của kích thước nội dung của chế độ xem cuộn cho tổng chiều rộng của nội dung và chiều rộng thanh bên. Vị trí nội dung ở (chiều rộng thanh bên, 0). Bạn có thể kéo nó để che hoặc tiết lộ thanh bên.

Sự cố là chế độ xem bảng không thể nhận bất kỳ sự kiện chạm nào cho nó được che phủ bởi chế độ xem cuộn.

Vì vậy, tôi triển khai một lớp con.

@interface UICascadeScrollView : UIScrollView { 
     UIView* passthroughView_; 
} 

@property(nonatomic,assign) IBOutlet UIView* passthroughView; 

@end 

@implementation UICascadeScrollView 

@synthesize passthroughView = passthroughView_; 

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { 
     for(UIView* v in self.subviews) { 
       if(CGRectContainsPoint(v.frame, point)) { 
         // one of the sub view could accept the touch event 
         return [super hitTest:point withEvent:event]; 
       } 
     } 
     CGPoint newPoint = [self convertPoint:point toView:passthroughView_]; 
    return [passthroughView_ hitTest:newPoint withEvent:event]; 
} 


- (void)dealloc { 
     self.passthroughView = nil; 
    [super dealloc]; 
} 


@end 

Thay đổi lớp cuộn đến UICascadeScrollXem và đặt passthroughXem thành thanh bên.

Đó là tất cả.

============================================== ====================================

Mẫu của ba tầng tầng với chế độ xem bảng như một thanh bên.

[email protected]: slavikshen/CascadeScrollView.git

https://github.com/slavikshen/CascadeScrollView

Đây là lần đầu tiên cam kết trung tâm git của tôi. Xin vui lòng cho tôi biết, nếu có bất cứ điều gì sai trái.

+0

Các giải pháp hoạt động, tuy nhiên nó không xử lý kéo ngang trên tableView để di chuyển UICascadeScrollView, giống như bạn có thể với ứng dụng Twitter iPad. Bất kỳ lời khuyên về xử lý lừa đó? –

+0

Đặt UICascadeScrollView A vào một UICascadeScrollView B khác làm nội dung. Đặt A.passthroughView = B. – Slavik

+0

Không, chỉ là hitTests UICascadeScrollView A như trước đây. –

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