- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经多次使用 UITapGestureRecognizer,但在这种情况下,当发生点击时我得到 EXC_BAD_ACCESS。我认为这与我将其添加到警报类型覆盖 View 这一事实有关。由于某种原因,覆盖 View 即使在屏幕上也不会保留。
我正在创建这样的 View :
HelperView *testHelper = [HelperView helperWithBodyText:@"test text"];
[testHelper presentAtPoint:screenCenter];
HelperView.m 中的便捷方法如下所示:
+ (id)helperWithBodyText:(NSString*)text
{
return [[self alloc] initWithFrame:CGRectZero bodyText:text];
}
其余代码如下所示:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
self.container = [[AGWindowView alloc] initAndAddToKeyWindow];
self.container.supportedInterfaceOrientations = UIInterfaceOrientationMaskLandscapeRight;
self.overlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
self.overlay.backgroundColor = [UIColor redColor];
self.overlay.alpha = 0.6;
[self.container addSubviewAndFillBounds:self.overlay]; //this fills the screen with a transparent red color, for testing
UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissMe:)];
[self.overlay addGestureRecognizer:tap]; //I want to dismiss the whole view if the overlay is tapped
self.content = [[UIView alloc] initWithFrame:CGRectZero];
}
return self;
}
- (id)initWithFrame:(CGRect)frame bodyText:(NSString*)bodyText
{
self = [self initWithFrame:frame];
if (self) {
//TEST frame
self.content.frame = CGRectMake(0, 0, 217, 134);
// Initialization code
UIImage *bgImage = [[UIImage imageNamed:@"helper-bg"]
resizableImageWithCapInsets:UIEdgeInsetsMake(30, 28, 20, 20)];
UIImageView *bgImgView = [[UIImageView alloc] initWithImage:bgImage];
bgImgView.bounds = self.content.frame;
[self.content addSubview:bgImgView];
}
return self;
}
- (void)presentAtPoint:(CGPoint)loc
{
CGPoint newPoint = [self.container convertPoint:loc toView:self.container];
self.content.center = newPoint;
[self.container addSubview:self.content];
}
- (void)dismissMe:(UITapGestureRecognizer*)recognizer
{
//this never happens - I get EXC_BAD_ACCESS when I tap the overlay
}
最佳答案
HelperView 不是显示的 View ,也没有保留它,但您将其用作手势识别器的目标。 AGWindowView 属性“容器”正在显示并由其 super View 保留。您的代码需要重构,因为您拥有此 View HelperView,它本身不显示任何内容,但如果您希望它像这样工作,您需要保留 HelperView,这样它就不会自动释放。您可以通过将其分配给强实例变量来做到这一点。
关于ios - 自包含 UIView 子类中的 UITapGestureRecognizer EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18388356/
有没有办法检测用户所做的旋转是顺时针还是逆时针方向??? 我搜索过但找不到答案! 我的代码如下所示: UIGestureRecognizer *recognizer; recognizer = [
我正在使用 UITapGestureRecognizer 进行双击。当我双击 UIButton 时,它可以工作。但我想避免它吗?有内置方法吗? 最佳答案 您可以通过设置以下 bool 值来阻止 UIT
我有以下代码: - (void)viewDidLoad { UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init
我有一个主视图 Controller ,它被称为WelcomeViewController。我有一个 UIView 子类,其中有一些与 View 相关的内容。我想向该子类添加一个 UITapGestu
UITapGestureRecognizer 不适合我,我想知道是否有人可以提供帮助。 这是我的 View 定义: @interface MainDisplayView : UIView 在实现中,
这太奇怪了,我创建了一个新项目来测试我是否要疯了。 您可以在这里查看项目 https://github.com/ojfoggin/TapTest 我创建了一个带有 UITabBarController
是否可以为触地事件设置 UITapGestureRecogniser?默认是修饰... 最佳答案 不,这是不可能的,但继承 UIGestureRecognizer 应该不难创建您自己的识别器。 您也可
我想设置一个 UITapGestureRecognizer 以允许用户添加图像作为配置文件。我设置了代码,但是当我触摸图像时,什么也没有发生。代码如下: @IBAction func selezion
现在我有一个功能,如果点击底部文本字段,则整个屏幕向上移动,否则如果点击顶部文本字段,则我不会移动屏幕: func keyboardWillShow(notification: NSNotificat
我正在尝试创建一个利用 UITapGestureRecignizer 来执行转场的按钮。由于某种原因,当我尝试从导航面板按住 Control 键拖动到助理编辑器时,它无法连接。我正在使用以下代码: o
我已经搜索了此问题的解决方案,但找不到任何似乎可以解决我的情况的内容。我从 UITapGestureRecognizer 收到上述异常。 这是简化的代码: import UIKit; class Vi
我正在尝试向 View 添加 2 个 UITapGestureRecognizers,一个用于单击事件,一个用于双击事件。单击识别器按预期工作(自行)。但我似乎无法让双击识别器工作。 已尝试尝试以下属
我的 UITapGestureRecognizer 有问题。我使用这段代码: let gesture = UITapGestureRecognizer(target: self, action: #s
为了做好准备,我有一个 4x5 的 UIImageView 网格,我想在点击时翻转并显示新图像。我想用一个@IBaction 来完成这个任务。我只是在识别点击时引用选定的 UIIMageView 时遇
我的 UIViewController 上有一个 UITapGestureRecognizer。 UIViewController 有一个 UIScrollView,它有一个 UIWebView。现在
我正在使用 UITapGestureRecognizer 这是我的代码: Home.m: - (void)viewDidLoad { [super viewDidLoad]; UITa
我在最低 View (self.view) 上使用 UITapGestureRecognizer 来隐藏我的键盘。 UITapGestureRecognizer *tapHandler = [[UIT
我正在尝试在我的 iOS 应用程序上实现一种“帮助模式”。当用户点击帮助按钮时,UITapGestureRecognizer 会拦截对屏幕的触摸,如果它在控件上,则会出现一个带有帮助信息的小弹出窗口。
我有一个红色的 SCNNode,它以 1/2 的方式悬停在蓝色 SCNNode 上。我需要它们两个的dragEvent,这样当它们被滑动时它们就会移动(效果很好)。问题是我只需要蓝色节点的 tapEv
我的任务是将音频播放器添加到现有的 iPad/iPhone 应用程序中。在过去的两天里,我一直在努力弄清楚为什么我不能让一个简单的点击手势工作。我已经搜索了互联网无济于事。我知道有几个这样的问题已经存
我是一名优秀的程序员,十分优秀!