草庐IT

iphone - UIView 之外的触摸

coder 2024-01-21 原文

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
  UITouch *touch = [touches anyObject];
  NSLog(@"The tag %i",touch.view.tag);
  if( [touch.view isKindOfClass:[UIScrollView class]] ) {
    for( UIView *checkview in [self.view subviews] ) {
      if( [checkview tag] == 1 ) {
        infoIsVisibile = NO;
        [info removeFromSuperview];                         
      }
    }
  }
  [super touchesBegan:touches withEvent:event];
}

谁能帮帮我,这只会检测 subview 内的触摸,而不是主视图。

最佳答案

您可以将 UIGestureRecognizer 连接到您感兴趣的 View 。

(一般来说,手势识别器是一种更强大的机制,用于检测任意 View 中的触摸,并且它们可以很好地处理 UIWebViews 和 UIScrollViews 等倾向于吃掉传统触摸事件的 View 。)

这是一个片段:

UITapGestureRecognizer *singleFingerDTap = [[UITapGestureRecognizer alloc]
        initWithTarget:self action:@selector(handleSingleDoubleTap:)];
    singleFingerDTap.numberOfTapsRequired = 2;
    [self.theView addGestureRecognizer:singleFingerDTap];
    [singleFingerDTap release];

(此代码来自下面的链接文档——请注意,self.theView 可能是作为当前对象的成员存储的一些随机 View 。)

您会惊讶(或震惊)手势识别器在多大程度上简化了您的代码并减少了怪异现象。

这是 Apple 文档的链接:

http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizers/GestureRecognizers.html

关于iphone - UIView 之外的触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10924233/

有关iphone - UIView 之外的触摸的更多相关文章

  1. ruby - 为什么允许在 Ruby 类之外定义全局方法? - 2

    我读过这个:Let’sstartwithasimpleRubyprogram.We’llwriteamethodthatreturnsacheery,personalizedgreeting.defsay_goodnight(name)result="Goodnight,"+namereturnresultend我的理解是,方法是定义在类中的函数或子程序,可以关联到类(类方法)或对象(实例方法)。那么,如果它不是在类中定义的,怎么可能是方法呢? 最佳答案 当你在Ruby中以这种方式在全局范围内定义一个函数时,它在技术上变成了Obje

  2. Ruby 服务器在本地主机(teambox)之外非常慢 - 2

    我刚刚在我的Ubuntu9.10服务器上安装了TeamBox。我使用提供的服务器脚本在端口3000上启动并运行它。它的运行速度非常慢,从另一台计算机连接时每个HTTP请求最多需要30秒。我使用链接从shell加载TeamBox,一点也不花时间。然后我设置了一个SSH隧道,它再次运行得非常快。我通过此服务器上的apache以及SAMBA等运行了大约30个虚拟主机,没有任何问题。我该如何解决这个问题? 最佳答案 我的redmine(ruby,webrick)太慢了。现在我解决了这个问题:apt-getinstallmongrelruby

  3. ruby-on-rails - 当需要 active_support 时,cattr_accessor 不工作(在 rails 之外)? - 2

    我不熟悉active_support,所以请多多包涵!Fox'slibrary允许通过谷歌的API进行搜索,但它需要积极的支持。我似乎无法让它工作!有什么想法吗?require'rubygems'require'active_support'require'google_search'pGoogleSearch.web:q=>"HelloWorld!"给我:NoMethodError:undefinedmethod‘cattr_accessor’forGoogleSearch:Class知道我做错了什么吗? 最佳答案 通过更多的谷歌

  4. Ruby,我如何访问 do - end 循环之外的局部变量 - 2

    我有一个循环,我在远程机器上执行一系列命令:ssh.exec('cd/vmfs/volumes/4c6d95d2-b1923d5d-4dd7-f4ce46baaadc/ghettoVCB;./ghettoVCB.sh-fvms_to_backup-ddryrun')do|ch,stream,data|if#{stream}=~/vmupgrade/putsvalue_hosts+"is"+dataputs#{stream}putsdataendend我想在do-end循环之外访问#{stream}和数据如果有任何帮助,我将不胜感激。谢谢,嗨,约格,我实现了您的建议,但现在出现错误:Wr

  5. ruby - 在描述之外使用 RSpec 的 "expect"等...它会阻止 - 2

    我正在构建一个网络应用程序自动化框架,旨在允许:当然是自动化任务轻松构建测试场景我正在使用Capybara与浏览器通信,我有一个组件库,其中包含许多辅助函数(login_to_the_back_office、create_customer等)。现在我希望我的组件可以独立使用,也可以在RSpec测试中使用。这意味着我的组件(包含在库中)没有环绕describe...it...默认情况下会阻塞,但在测试使用它们时它们会在某个时候出现,因此它们应该使用expect和friend尽可能多。我关注了rspec's.shouldfails(outsidedescribe/itblock)inRub

  6. ruby-on-rails - 我如何在邮件程序之外使用 Devise 的 `confirmation_url`? - 2

    我在Rails项目中使用Devise。我想将确认网址传递给第三方。该url由以下DeviseMailerView中的表达式confirmation_url(@resource,confirmation_token:@token)生成:https://github.com/plataformatec/devise/blob/master/app/views/devise/mailer/confirmation_instructions.html.erb我已经grep了Devise的整个源代码,试图找出confirmation_url定义的人或位置,但我找不到任何东西;它只出现在View中

  7. ruby - 使用模块范围之外的对象 - 2

    我有这样的代码。classUser如果我调用Foo::DoesSomethingWithActiveRecordUser.new(1),我会收到一条错误消息,内容类似于undefinedmethod'find'forFoo::User。如何从Foo中调用ActiveRecord用户?谢谢。 最佳答案 像这样:::User.find(user_id) 关于ruby-使用模块范围之外的对象,我们在StackOverflow上找到一个类似的问题: https://s

  8. ruby - 如何在 Rails 之外使用 less.rb 处理 Bootstrap - 2

    我正在尝试使用less.rb创建一个独立的应用程序(独立于RailsAssets管道)以基于TwitterBootstrap输出CSS文件。下面的结果是一个空文档parser=Less::Parser.new:paths=>[Rails.root+'/public/bootstraps/twitter-bootstrap-857b8fb/less']tree=parser.parse("@import'bootstrap.less'")tree.to_css这会导致返回一个空字符串。我尝试了将@import更改为完整路径等的变体,但没有成功。我想我一定遗漏了一些简单的东西。

  9. iphone - 扩展 restful_authentication/AuthLogic 以支持匿名 iPhone 的延迟登录的最佳方法是什么? - 2

    我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符

  10. ruby-on-rails - delayed_job gem 可以在 Rails 之外使用吗? - 2

    是否可以在Rails之外使用delayed_jobgem?或者换句话说,它可以用于纯Ruby项目吗?如果可以,怎么做? 最佳答案 我不知道为什么这个人从来没有发布过这个。这很容易。两步:http://brkrd.com/post/45269754283/delayed-job-without-rails更新看起来链接已损坏。您将需要ActiveRecord,但不需要Rails。您将必须模拟一个Rails对象,并将您的数据库信息、环境和根加载到Rails对象中,以便DelayedJob认为它在Rails环境中。

随机推荐