我有一个UITableView,其中有两个部分需要可编辑。第一部分是一些具有文本,数字和日期内容的单元格,它们提供了一个单独的视图控制器,用于编辑值。
底部是jst一个单元格,显示一个具有MKMapView的自定义单元格。此单元用于显示此特定信息记录的位置。我希望这个单元格可以“就地”编辑:
我不确定如何继续:
答案 0 :(得分:1)
将滚动视图放在另一个内部可能会非常棘手。 MKMapView不是真正的scrollview(即,它不是来自UIScrollView),但我不确定它会对你有所帮助。我建议从TableView中删除MKMapView,因为解析它与TableView之间的接触会变得有点冒险。
答案 1 :(得分:0)
我不完全确定你想要得到什么,但为什么你需要将MKMapView放在UITableViewCell里面?
您可以通过更改其userInteractionEnabled属性来启用/禁用mapview上的滚动。设置新位置后,您只需更新mapView的可见区域(使用-setCenterCoordinate:
或--setRegion:methods) - 因此无需使用UITableView的方法。
答案 2 :(得分:0)
我想出了一半。在自定义单元格上切换用户交互只需要放置
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.mapView setUserInteractionEnabled:editing];
}
在UITableViewCell子类中。
对于该位置,我将尝试在
上发布通知mapView:regionDidChangeAnimated:
事件。如果成功,我会告诉你的。
答案 3 :(得分:0)
我有同样的问题:在自定义UITableViewCell中嵌入MKMapView。
经过一个下午的嘲笑,我很幸运地找到了解决方案。就我而言,解决方案最终非常简单。问题是由于我的自定义tableView中定义的单元格高度heightForRowAtIndexPath :( NSIndexPath *)indexPath对于MKMapView而言太短。你不会知道它的外观。实际上,您可以定义一个比heightForRowAtIndexPath中定义的更高的自定义tableview单元格视图。猜猜看,外观将由自定义表格视图单元格的视图高度决定。但它不会正常工作。超出此范围的区域在heightForRowAtIndexPath中定义,不响应任何用户交互。这就是为什么我的MKMapView在嵌入tableview单元格时不可缩放或可移动的原因。这是一个编译器错误,我希望Apple能解决。
还要确保禁用tableView滚动,否则应该滚动哪一个令人困惑。