草庐IT

ios - UIKit Collection View ,奇怪的行为(访问/滚动单元格)

coder 2023-09-07 原文

所以我最近在我的应用程序中实现了一个 Collection View ,但我遇到了一个我似乎无法解决的错误,搜索它并没有看到关于它的线程。

如果我将光标/手指放在单元格上,我无法滚动浏览我的 Collection View ,我需要选择一个“空白”区域来滚动。

我遇到的第二个奇怪行为是我无法直接触摸单元格。我需要在选择单元格时触发代码的某种滑动手势。

如果我转到 Storyboard上的 Collection View 并在 ScrollView 部分选择延迟内容接触可取消内容接触, Collection View 滚动得很好但如果我将我的手指/光标放在启用了这些选项的单元格上我无法再访问任何单元格。

这让我很困惑。

感谢您阅读/考虑此话题。

最佳答案

让我们看看您的两个属性的作用。

delaysContentTouches:如果此属性的值为 true,则 ScrollView 会延迟处理触摸手势,直到它可以确定滚动是否是意图。如果值为 false , ScrollView 立即调用 touchesShouldBegin(_:with:in:)。默认值为真。

canCancelContentTouches:如果此属性的值为 true 并且内容中的 View 已开始跟踪触摸它的手指,并且如果用户拖动手指足以启动滚动,则该 View 会收到touchesCancelled(_:with:) 消息和 ScrollView 将触摸作为滚动处理。如果此属性的值为 false,一旦内容 View 开始跟踪,无论手指移动如何, ScrollView 都不会滚动。

首先,您将 delaysContentTouches 设置为 false。所以 ScrollView 立即调用内容 View 的触摸处理方法,让它处理触摸。显然,即使您拖动, ScrollView 也不会因此立即开始滚动。

其次,您还将 canCancelContentTouches 设置为 false。但是,如果不允许 ScrollView “接管”内容已经处理的触摸(通过取消它们),则它以后也永远无法开始滚动。因此,如果您触摸到内容 View ,则 ScrollView 无法开始滚动:不允许立即滚动,因为不允许延迟内容触摸,并且无法开始滚动稍后因为它无法取消内容触摸。

我不知道您的单元格中发生了什么,也不确定您在其中输入了什么代码。但是,您可能应该允许您的 tableview 延迟触摸(这意味着您的单元格不会处理立即取消的滑动,因为它们本来是滚动手势),并取消内容触摸(这意味着当您触摸向下并且不要松开,您仍然可以在单元格突出显示后开始滚动手势)。

关于ios - UIKit Collection View ,奇怪的行为(访问/滚动单元格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40898781/

有关ios - UIKit Collection View ,奇怪的行为(访问/滚动单元格)的更多相关文章

  1. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  2. ruby-on-rails - 在混合/模块中覆盖模型的属性访问器 - 2

    我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah

  3. ruby - 续集在添加关联时访问many_to_many连接表 - 2

    我正在使用Sequel构建一个愿望list系统。我有一个wishlists和itemstable和一个items_wishlists连接表(该名称是续集选择的名称)。items_wishlists表还有一个用于facebookid的额外列(因此我可以存储opengraph操作),这是一个NOTNULL列。我还有Wishlist和Item具有续集many_to_many关联的模型已建立。Wishlist类也有:selectmany_to_many关联的选项设置为select:[:items.*,:items_wishlists__facebook_action_id].有没有一种方法可以

  4. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  5. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  6. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  7. ruby-on-rails - Prawn - 表格单元格内的链接 - 2

    我正在尝试用Prawn生成PDF。在我的PDF模板中,我有带单元格的表格。在其中一个单元格中,我有一个电子邮件地址:cell_email=pdf.make_cell(:content=>booking.user_email,:border_width=>0)我想让电子邮件链接到“mailto”链接。我知道我可以这样链接:pdf.formatted_text([{:text=>booking.user_email,:link=>"mailto:#{booking.user_email}"}])但是将这两行组合起来(将格式化文本作为内容)不起作用:cell_email=pdf.make_c

  8. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  9. ruby - Ruby gsub 替换中的行为不一致? - 2

    两个gsub产生不同的结果。谁能解释一下为什么?代码也可在https://gist.github.com/franklsf95/6c0f8938f28706b5644d获得.ver=9999str="\tCFBundleDevelopmentRegion\n\ten\n\tCFBundleVersion\n\t0.1.190\n\tAppID\n\t000000000000000"putsstr.gsub/(CFBundleVersion\n\t.*\.).*()/,"#{$1}#{ver}#{$2}"puts'--------'putsstr.gsub/(CFBundleVersio

  10. ruby-on-rails - Ruby 中意外的大小写行为 - 2

    我在一段非常简单的代码(如我所想)中得到了一个错误的值:org=4caseorgwhenorg=4val='H'endputsval=>nil请不要生气,我希望我错过了一些非常明显的东西,但我真的想不通。谢谢。 最佳答案 这是典型的Ruby错误。case有两种被调用的方法,一种是你传递一个东西作为分支的基础,另一种是你不传递的东西。如果您确实在case中指定了一个表达式语句然后评估所有其他条件并与===进行比较.在这种情况下org评估为false和org===false显然不是真的。所有其他情况也是如此,它们要么是真的,要么是假的。

随机推荐