当我在UITableViews中滚动到顶部或底部时,无法识别下一个Tap。这一点也可以通过不会消失的ScrollIndicator识别出来。 ScrollIndicator在滚动后很快就会消失,但在这种情况下,它会一直保持可见,直到第一个Tap。
我的UIScrollViews在另一个UIScrollView或UITableView中没有嵌套,它们成为所有类似问题的原因。尽管如此,我从这些问题中尝试了很多可能的解决方案。但没有任何帮助
我正在使用: iOS部署目标8.0。实际的iPhone设备有iOS 9.3.1。 自动布局。弹跳=假。垂直滚动。
我尝试的事情:
我启用Bounce只是为了测试。但即使启用Bouncing,我也可以生成案例,ScrollView进入状态,下一次点击被忽略。所以我认为弹跳不是罪魁祸首
使用"调整滚动视图插图"。 使用" ExtendEdges:..."标志。 更改了"延迟内容触动"
我尝试重写touchesCanceled并通过调用touchesBegan和touchesEnded以编程方式启动我自己的第一个Tap作为解决方法,但它接缝这不算真正的Tap。
因此...
我还能尝试什么?如何更好地以编程方式点击? (但请记住AppReview)
修改
我被要求发布一些相关代码。
好吧,我认为我不应该发布故事板设置,因为故事板设置有点如上所述。除此之外,每个带有UITableViews的UIViewController都有一个UINavigationItem但没有自己的UINavigationController。这对于实际的顶级位置可能很重要。这就是为什么我使用"调整滚动视图插图"选项。但我不确定从中可以采取什么。
这是我在UITableViewController中的viewDidLoad
override func viewDidLoad() {
self.view.backgroundColor = UIColor.clearColor()
super.viewDidLoad()
// loading myDataList
self.clearsSelectionOnViewWillAppear = false
}
在我的AppDelegate中:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UITableView.appearance().bounces = false
UIScrollView.appearance().indicatorStyle = UIScrollViewIndicatorStyle.White
return true
}
这是tableView委托,我在UITableViewClasses中使用:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myDataList!.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "PlantTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! PlantTableViewCell
// ... setting up the cell
return cell
}
通常触发的水龙头的动作也只是故事板中定义的segues。通常会调用以下代码,除非用户滚动到顶部或底部:
override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool {
// not called, when scrolled to top or bottom
if identifier == ...
}
我不知道还有什么相关的。