我正在寻找一个教程或一些想法来制作一个看起来像iPad的Twitter应用程序中的自定义控制器,我的意思是左侧有主菜单的堆叠页面。提前感谢您的帮助!!
答案 0 :(得分:11)
我们创建了一个模拟项目并添加到github
答案 1 :(得分:2)
我有一个解决方案。
将表格视图放在左侧的侧边栏菜单中。 在顶部放置滚动视图。 将内容添加到滚动视图中。
滚动视图将覆盖表格视图。 将滚动视图的内容大小的宽度设置为内容宽度和侧边栏宽度的总和。 内容位置为(侧边栏宽度,0)。您可以将其拖动以覆盖或显示侧边栏。
问题是表视图无法接收任何触摸事件,因为它被滚动视图覆盖。
所以我实现了一个子类。
@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
将scrollview类更改为UICascadeScrollView,并将passthroughView设置为侧栏。
就是这样。
=============================================== ===================================
三个级联图层的示例,其中表格视图为侧边栏。
git@github.com:slavikshen / CascadeScrollView.git
https://github.com/slavikshen/CascadeScrollView
这是我第一次提交git hub。如果有什么不妥,请告诉我。