- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在自定义类 MMTimerButton 中,我将按钮设置为响应单击和双击
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
[self setBackgroundColor: [UIColor clearColor]];
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
singleTapRecognizer.numberOfTapsRequired=1;
singleTapRecognizer.delaysTouchesEnded=YES;
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
doubleTapRecognizer.numberOfTapsRequired=2;
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[self addGestureRecognizer:singleTapRecognizer];
[self addGestureRecognizer:doubleTapRecognizer];
}
return self;
}
我在同一个文件中实现了这样的两种方法
-(void)handleTap:(UITapGestureRecognizer *)sender{
NSLog(@"single tap");
}
-(void)handleDoubleTap:(UITapGestureRecognizer *)sender{
NSLog(@"double tap");
}
在标题中,我声明了两个方法
#import <UIKit/UIKit.h>
@interface MMTimerButton : UIButton
-(void)handleTap:(UITapGestureRecognizer *)sender;
-(void)handleDoubleTap:(UITapGestureRecognizer *)sender;
在 Storyboard中,我向界面添加了一个按钮,并将其自定义类设置为 MMTimerButton。
当我单击按钮(在模拟器中)时没有任何反应。单击一下,单击两次,都没有。
我也尝试过不使用按钮,只是将手势识别器添加到 titleView 中。当我点击模拟器中的标题时没有任何反应
UITapGestureRecognizer* doubleTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (handleDoubleTap:)];
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (handleSingleTap:)];
[singleTap requireGestureRecognizerToFail : doubleTap];
[doubleTap setDelaysTouchesBegan : YES];
[singleTap setDelaysTouchesBegan : YES];
[doubleTap setNumberOfTapsRequired : 2];
[singleTap setNumberOfTapsRequired : 1];
self.navigationItem.title =@"title";
[self.navigationItem.titleView addGestureRecognizer:doubleTap];
[self.navigationItem.titleView addGestureRecognizer:singleTap];
但是,当我将此代码添加到标题 View 时,它工作正常(在模拟器中)
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UILabel *headerLabel = [[UILabel alloc]init];
headerLabel.tag = section;
headerLabel.userInteractionEnabled = YES;
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.text = [NSString stringWithFormat:@"0:00",section];
headerLabel.textAlignment = UITextAlignmentCenter;
headerLabel.frame=CGRectMake(10,-5,tableView.frame.size.width,41);
UITapGestureRecognizer* doubleTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (handleDoubleTap:)];
UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget : self action : @selector (handleSingleTap:)];
[singleTap requireGestureRecognizerToFail : doubleTap];
[doubleTap setDelaysTouchesBegan : YES];
[singleTap setDelaysTouchesBegan : YES];
[doubleTap setNumberOfTapsRequired : 2];
[singleTap setNumberOfTapsRequired : 1];
self.navigationItem.title =@"title";
[headerLabel addGestureRecognizer:doubleTap];
[headerLabel addGestureRecognizer:singleTap];
return headerLabel;
//return nil;
}
最佳答案
您在这里展示了很多有问题的代码,因此很难知道从哪里开始。
对于 initWithFrame:
来说,问题是永远不会为按钮调用此方法。此外,您还会遇到冲突,因为该按钮已经包含在内部响应点击的功能(它是一个按钮!)。
在第二组代码中,您从未将 titleView
设置为 View ,因此它为 nil,并且您的代码不执行任何操作。此外,您不能同时设置 title
和 titleView
(您正在设置 title
)。
您的标题问题的答案是,titleView
当然可以响应点击。很多应用程序都这样做(包括我的)。
此外,您不需要 requireGestureRecognizerToFail
- 单击手势识别器和双击手势识别器已经知道如何在它们之间进行协调。
所以基本上我的建议是:不要让一切变得过于复杂。不要做出大的假设并一头扎进去。从你知道有效的事情开始,然后采取一些小步骤。随时使用日志记录/断点测试所有内容,看看所发生的情况是否如您所想象。
关于ios - 可以让 titleView 接受点击手势吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23691867/
我已经在我的 navigation.titleView 中添加了一个搜索栏 self.navigationItem.titleView = searchBar 还有一个带有 title = "
我正在尝试使用以下代码在 UINavigationItem 上添加我的图像: override func viewDidLoad() { super.viewDidLoad()
Xamarin 新手,我正在尝试在我的跨平台应用程序中创建自定义导航栏。经过一些阅读,我发现我可以在我的 xaml 页面文件中使用标题 View 组件,如下所示。
我正在使用带有自定义 UIView 子类的导航,该子类成为我的 titleView。我想确保这是完整的可用宽度。 从我的 UIViewController 的 viewWillAppear: 逻辑上来
我发现有关使用 UINavigationItem#titleView 和自定义字体的信息很少。当我这样做时,导航栏中的字体垂直不对齐。 这篇文章的部分目的是记录黑客行为,也希望有人对这个问题有一个简洁
我正在尝试添加自定义控件作为 UINavigationBar 中的 titleView。当我这样做时,尽管设置了通常采用全宽的框架和属性,但我得到了: 亮蓝色可以忽略,因为它是我隐藏自定义控件的地方。
我正在尝试动态设置导航栏的文本,以便标题文本始终适合。我是这样完成的: // Pet's Day text "Joy's Day" if let range = currentPet.range(of
我想使用 UITextField 创建一个搜索栏。我尝试将 NavigationItem 的 TitleView 设置为文本字段并设置相应的约束。但导航栏中央的文本字段仍然很短。如何让文本框填满整个导
我正在学习一个 coursera 类(class),我真的到了我认为我不适合这个工作领域(开发)并且应该坚持图形设计的地步。至少我想完成这门类(class),但我不断收到我不明白的错误!根据 logc
我想在第一个 View Controller 的导航栏中添加一个 Logo ,但它的缩放效果很差,因为我不知道最大尺寸是多少。有谁知道吗? 顺便说一句,我知道创建全尺寸图像的技巧,但我不想这样做,我只
当方向改变时调整 UINavigationBar titleview 内容图像大小的最佳方法是什么。我有一张图像高度为 44 像素,另一张图像高度为 32 像素,在旋转 View 后,我更改标题 Vi
在自定义类 MMTimerButton 中,我将按钮设置为响应单击和双击 - (id)initWithFrame:(CGRect)frame { self = [super initWithF
我正在使用 Storyboard ,并将 UIView 添加到带有 2 个子 UILabels 的导航项。我希望 UIView 尽可能达到最大宽度。我注意到我无法使用自动布局来创建约束来执行此操作。这
我的目标是在导航 Controller 页面标题中使用不同字体大小的标题和副标题(标题应该更大,副标题应该相应地更低)。 我找到了实现此功能的代码示例。唯一的问题是未应用字体大小——标题和副标题的字体
我的应用程序适合放在 UINavigationController 中。简单地说,我将 MyUIViewController 设置为 navigationController 的 rootViewCo
我正在尝试推送一个 View Controller 并设置其导航栏的标题,但我猜是因为使用了很长的标题,所以它没有居中。与此同时,后退按钮的范围增加到标题 View ,即如果我点击 Milestone
我想用图像和文本设置 navigationItem 的 titleView,如下图所示: 我该如何实现? 更具体地说,我正在尝试在 Swift 中执行此操作。 最佳答案 条件,你的 Controlle
我有这样的东西: 但我需要为 titleView 设置的 View 在左侧和右侧没有这些边距。像这样: 这就是我实际做的: @property (nonatomic, strong) XHScroll
我在 UIViewController 扩展中使用这个函数来添加一个调整字体以适应宽度的标题。 extesion UIViewController { func setTitleDiffere
在我的 View Controller 中,我将 titleView 设置为 UIView,其中包含一个 UIImageView,使用 setCornerRadius 将其制成一个圆圈层。 圆的上半部
我是一名优秀的程序员,十分优秀!