- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下问题:在我的 iphone 应用程序中,我有一个 UIView
包含 0 到多个 subview 。这些 subview 可能会溢出父 View 并因此被隐藏,它们都是 UIButtons
。我向 UIView
添加了一个 UISwipeGestureRecognizer
来移动按钮,效果很好。但是,它仅在手势在后台完成时有效,UIButton
会干扰手势识别器。
我怎样才能传递手势?顺便提一句。我仍然需要点击按钮。
谢谢!
编辑:
我也尝试将手势识别器添加到 UIButtons,但它没有被触发...虽然执行滑动手势可以防止 UIButton 进入突出显示状态,但它不会触发手势。我按照 UIButton and Swipe Gesture 中的建议添加了 setDelaysTouchesBegan:YES
.我现在就是这样做的:
UIButton *breadcrumb = [UIButton buttonWithType:UIButtonTypeCustom];
[breadcrumb setImage:[UIImage imageNamed:@"Next"] forState:UIControlStateNormal];
[breadcrumb setTitle:title forState:UIControlStateNormal];
[breadcrumb.titleLabel setFont:[UIFont systemFontOfSize:12.0f]];
[breadcrumb sizeToFit];
[breadcrumb setTag:level];
UISwipeGestureRecognizer *gr = [[UISwipeGestureRecognizer alloc] init];
[gr setDelegate:self];
[gr setDirection:UISwipeGestureRecognizerDirectionRight];
[gr setDelaysTouchesBegan:YES];
[self.tableView addGestureRecognizer:gr];
[breadcrumb addGestureRecognizer:gr];
编辑 2:
我现在已经将 UIButton 子类化并像这样初始化它:[BreadcrumbButton buttonWithType:UIButtonTypeCustom]
。在初始化程序中,我将按钮本身添加为所有触摸事件的监听器 [self addTarget:self action:@selector(eventReceiver:) forControlEvents:UIControlEventAllTouchEvents];
以检查发生了什么。
- (void)eventReceiver:(UIButton *)btn {
NSLog(@"Reveived event: %@ ---------------", btn);
for(UIGestureRecognizer *gr in ev.gestureRecognizers) {
NSLog(@"Gesture: %@", gr);
}
}
我看到的是 a) 该按钮只添加了一个手势识别器,并且 b) 此 UISwipeGestureRecognizer
在滑动期间跳转到状态 Possible
但不会转发到它的状态委托(delegate)方法。
最佳答案
您必须子类化 UIButton 并覆盖点击委托(delegate)回调,并将此调用转发给任何正在处理 UISwipeGestureRecognizer 的对象。除非你在 UIButton 上添加手势识别器,否则它总是会在它后面的 View 之前调用它的触摸处理程序。您还可以明确告诉按钮不处理它的触摸事件,从而将触摸事件传递到链下(通过 userInteractionEnabled),但正如您已经声明的那样,您不希望这样做。解决此问题的最佳方法是创建 UIButton 的子类并在那里处理触摸事件和/或使用委托(delegate)转发事件。按下按钮是一个触摸事件,因此您可能只想向按钮添加一个点击手势识别器并从中调用 IBAction,然后让滑动手势识别器转发委托(delegate)调用。
关于iOS gestureRecognizer 未处理 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23736525/
我在自定义表格单元格中长按时添加 subview ,但是当我滚动表格时, subview 消失。 p> 我应该怎么做,以便当我向后滚动时,该 subview 仍然显示/出现在该单元格上,或者换句话说,
如何遍历 UIView 的所有 subview ,以及它们的 subview 和它们的 subview ? 最佳答案 使用递归: // UIView+HierarchyLogging.h @inter
如果我有 contentView 和 2 个 subview 。我想根据subviewB居中subviewA subviewA 和 subviewB 有相同的父 View 。 这就是我现在正在做的,将
我想向 self.view 添加一个覆盖整个区域的 subview (如调光 View )。但在它下面,有一些 View 我不希望受到添加的 subview 的影响(我不希望这些 View 具有变暗的
我正在尝试向 UITabBar 添加 subview ,它应该位于其他 UITabBar subview 之后。 我在 UITabBarController 的子类中添加了这样的 subview :
图像描述了我必须将这种 subview 添加到我现有的单元格中,并且在多次单击“添加”图标时还要添加相同的 subview 。 我在添加 subview 时遇到困难。如果有人能为我提供处理此结构的正确
我添加了一个 subview ,如下所示: func showPlayerView2() { self.view.frame = CGRect(x: 0, y: 0, width: view.
我的问题是关于 UIView/CALayer: Transform triggers layoutSubviews in superview 据报道,来自苹果的 TSI 回复: Generally,
我试图为我的主视图创建一个辅助 View 。这个 subview 需要很小的高度,它需要适合另一个带有标签的大 UIView。 问题是当我使用 UIView addSubview 时,第三个 UIVi
我正在尝试淡出整个 View ,但只有一个特定的 subview , 这将强调 subview更清晰的外观。假设 self.view 有 5 textfields和 2 UIView如subviews
我确信我在这里错过了一些愚蠢的东西,但我有 mainView、subviewA 和 subviewB。我试图将 subviewB 添加到 subviewA 并将其锚定在 subviewA 内部,但是它
我有一个包含 3 个 subview 的 View ,分别称为 view A、view B、view C。 当我删除 subview 时,意味着我需要自动设置边距以进行调整。 当我删除 view A
我有两个加载的 subview 。一个是位于 View Controller 内部的选项卡栏,它很早就加载,第二个是按下选项卡栏项目时出现的 View 。 但是,当添加此 subview 时,它会加载
在 iOS 应用中,我在主视图中添加了一个 subview : [self.view addSubview:firstUIImageSubview]; 但是在 subview 类 firstUIIma
我正在制作一个球程序,您可以通过长按手势将球 UIView subview 添加到 super View 。点击 View 会将其从父 View 中移除。 添加所有 View 效果很好,重新添加 Vi
我使用以下代码在单击按钮时将日期选择器 View 添加到我的应用程序主视图。 - (IBAction)CalenderButton_Click:(id)sender { // code to add
我正在努力向 View 添加 subview 。进度变量在其 View Controller 的 viewDidLoad() 中设置。 progressView frame size 设置正确,只是添
这是我的代码 var button = [UIButton?](count:3, repeatedValue: UIButton()) for i in 0...2{
我有一个 UIViewController,里面有几个不同的 UIView subview 。当用户调用某个 Action 时,我手动更改每个的大小、比例和位置。我想更新其中一个 UILabel( s
我的屏幕有一个主视图模型。它由 2 个 subview 模型组成。 其中一个负责注册部分。其中一个处理登录部分。其中一个负责处理菜单部分(如果经过身份验证,可以显示哪些菜单项,以及“欢迎“用户名”类型
我是一名优秀的程序员,十分优秀!