- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确信有人希望有多个按钮同时接受触摸的原因有很多。然而,我们大多数人一次只需要按下一个按钮(用于导航、以模态方式呈现某些内容、呈现弹出框、 View 等)。
那么,为什么 Apple 将 UIButton
的 exclusiveTouch
属性默认设置为 NO?
最佳答案
非常老的问题,但在我看来值得澄清。
尽管Apple提供了非常误导性的方法文档,设置了exclusiveTouch的 View “A”将阻止其他 View 接收事件只要A本身正在处理某些事件(例如,设置一个带有 ExclusiveTouch 的按钮并将手指放在其上,这将阻止窗口中的其他 View 与之交互,但一旦移除了 exlusiveTouch-item 中的手指,与它们的交互将遵循通常的模式)。
另一个效果是,只要与其他 View 进行交互,就阻止 View A 接收事件(保持按下未设置 ExclusiveTouch 的按钮,并且具有 ExclusiveTouch 的按钮也将无法接收事件)。
您仍然可以在 View 中将按钮设置为 ExclusiveTouch 并与其他按钮进行交互,只是不能同时进行,正如这个简单的测试 UIViewController 将证明的那样(一旦为 Outlet 和 Actions 设置了 IB 中的正确绑定(bind)) :
#import "FTSViewController.h"
@interface FTSViewController ()
- (IBAction)button1up:(id)sender;
- (IBAction)button2up:(id)sender;
- (IBAction)button1down:(id)sender;
- (IBAction)button2down:(id)sender;
@property (nonatomic, strong) IBOutlet UIButton *button1, *button2;
@end
@implementation FTSViewController
- (IBAction)button1up:(id)sender {
NSLog(@"Button1 up");
}
- (IBAction)button2up:(id)sender {
NSLog(@"Button2 up");
}
- (IBAction)button1down:(id)sender {
NSLog(@"Button1 down");
}
- (IBAction)button2down:(id)sender {
NSLog(@"Button2 down");
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Guarantees that button 1 will not receive events *unless* it's the only receiver, as well as
// preventing other views in the hierarchy from receiving touches *as long as button1 is receiving events*
// IT DOESN'T PREVENT button2 from being pressed as long as no event is being intercepted by button1!!!
self.button1.exclusiveTouch = YES;
// This is the default. Set for clarity only
self.button2.exclusiveTouch = NO;
}
@end
有鉴于此,恕我直言,Apple 不为每个 UIView 子类将 ExclusiveTouch 设置为 YES 的唯一充分理由是,这将使复杂手势的实现成为真正的 PITA,包括可能包括我们已经习惯的一些手势在复合 UIView 子类(如 UIWebView)中,因为将选定 View 设置为 ExclusiveTouch=NO(如按钮)比在几乎所有内容上执行递归 ExclusiveTouch=YES 来启用多点触控要快。
这样做的缺点是,在许多情况下,UIButtons 和 UITableViewCells(以及其他...)的反直觉行为可能会引入奇怪的错误并使测试变得更加棘手(就像我身上发生的那样... 10 分钟前? :( ).
希望对你有帮助
关于iphone - 为什么 UIButton 的 ExclusiveTouch 属性默认不设置为 YES?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6507794/
这个问题在这里已经有了答案: NSNumber Literals (5 个答案) 关闭 6 年前。 我正在发出一个 HTTP 请求,我必须在其中发送一个 bool 值。我试过他们两个。 两者的工作方
我使用 FireBug 测试了这两种情况,结果看起来非常相似: >>> var x = {"active": "yes"} >>> x.active "yes" >>> var x = {active
在 Objective-c 中,@YES/@NO 和 YES/NO 有什么区别?每种类型使用什么类型? 最佳答案 @YES 是 [NSNumber numberWithBool:YES] 的缩写形式
我正在编写一个脚本来创建虚拟机,显然我想支持标准的确认/whatif 语义。但是,如果我要创建多台机器,最好能区分"is"和“全部是”,这样我就不必重新确认每台机器。 $pscmdlet.Should
这个问题在这里已经有了答案: In JavaScript, why is "0" equal to false, but when tested by 'if' it is not false by
我需要编写一个正则表达式来验证字符串。如果正则表达式包含以下任何内容,则应传递字符串:y、Y、yes、YES , 1。这些字母可以是任何大小写。我是正则表达式和 JavaScript 的新手。 最佳答
我是网络开发的新手,如果能得到任何帮助,我将不胜感激。我有一个 HTML/CSS slider ,当 slider 处于"is"位置(如名字和主题)时,我想显示更多的文本框字段。如果可能的话,我真的希
bash: $: yes a [some output] then press Ctrl+Z $: yes b [some output] then press Ctrl+Z 然后,执行两
我感兴趣的是能够在 Yes/No 提示符下自动让我的 cmd 输入 Yes: __
以上说明了一切-我将 UITextField 设置为安全,但希望为用户提供使其不安全的选项(因此,如果他们在私有(private)区域中,他们可以确定输入的内容)。但是,假设他们误按了切换开关,并想将
当 ssh hostname 提示 The authenticity of host 'foobar' can't be established. ECDSA key fingerprint is .
如何在自定义 MKAnnotationView 上正确设置半径并允许标注?这会引发异常: 来 self 的自定义 MKAnnotationView 类: - (id)initWithFrame:(CG
如果我有 1200 行,并且我希望我的 120 行说"is"而其余的说“否”,我应该如何将其应用于 Excel 文件?我知道使用: =CHOOSE(RANDBETWEEN(1,2),"Yes","No
我想进行一个查询,返回如下所示的表结果: 列标题是我的一个表格中的字段,下面的数字是该字段的是/否条目数。 我遇到的问题是在行的开头显示是/否。我希望它以这种方式组织,以便更好地根据数据创建图表。 现
这个问题在这里已经有了答案: Literal @YES not working in iOS 5 / Xcode 4.4 (2 个答案) 关闭 7 年前。 使用 XCode 4.4 的 Conver
这段代码: $query = array( "var" => "no", "not_var" => "yes", "var2" => "maybe" ); print http
在我的 Dynamics CRM 机会表单中,我添加了销售配额分配网格。如果在整个网格中输入了四个以上"is",我希望显示一条警告消息(或类似的内容)。例如,假设记录“A”t 有 4 个标记为"is"
This question already has answers here: How do I perform an IF…THEN in an SQL SELECT? (31个答案) 已关闭6年。
考虑以下文档: foo: bar: Yes 根据the spec,这应该解释为Boolean,而不是String。 但是,it seems对此文档产生了相同的解释: foo: bar: 'Ye
在网页的第一页上,它要求用户从下拉列表中选择他们想要的产品类型,并且为每个产品指定一个值 0,1,2...然后,一旦他们继续,他们就会被发送到不同的网页,并根据他们选择的产品在那里我希望单选按钮自动选
我是一名优秀的程序员,十分优秀!