我正在尝试使用分组样式的UITableView占据iPad宽度的70%左右,因为100%看起来并不好看。这意味着任何一方都有大约150px。
这很好,但我希望屏幕的整个宽度可以滚动。
我尝试了各种各样的内容视图和插图,例如:
self.theTable.contentInset = UIEdgeInsetsMake(0, 150, 0, 150);
self.theTable.contentSize = CGSizeMake(self.theTable.contentSize.width + 300, self.theTable.contentSize.height);
self.theTable.contentOffset = CGPointMake(-150, 0);
但我不能让它像我想的那样工作。
我需要能够点击两侧的背景(150px左右)并能够通过拖动来滚动表格视图。
基本上,我猜这相当于将滚动视图大小增加150px左右,或者将tableview 150px任意一侧插入。
有什么想法吗?
答案 0 :(得分:1)
您可以覆盖tableView的superview的hitTest:withEvent:
方法,并返回tableView以获取所需的点。
或者,您可以覆盖tableView中的hitTest:withEvent:
并检查那里的条件。
容器superview hitTest方法的示例。所有事件都将转发到tableView。
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
if (![self pointInside:point withEvent:event]) {
return nil;
}
UITableView *tableView = nil;
for (UIView *v in self.subviews) {
if ([v isKindOfClass:[UITableView class]]) {
tableView = v;
break;
}
}
if (!tableView) {
return self;
}
if (CGRectContainsPoint(tableView.frame, point)) {
return [tableView hitTest:[self convertPoint:point toView:tableView] withEvent:event];
} else {
return tableView;
}
}