gpt4 book ai didi

iphone - IOS : setting 'dimmer' view's alpha to greater than 0. 0 禁用触摸事件(?)

转载 作者:行者123 更新时间:2023-12-03 19:42:25 25 4
gpt4 key购买 nike

我有一个应用程序,我试图在其中允许用户通过手势调暗显示屏。我有一个 UIView,其中包含许多其他 View 和按钮,在其上放置一个 UIView,其背景颜色设置为黑色。为了不进行调光,我将该调光器 View 的 Alpha 设置为零(透明)。为了实现调光效果,我以小步增加 alpha 值。这似乎工作得很好,除了...(你知道这即将到来)每当 alpha 值变得大于零时,触摸事件就会被阻止 - 不会正常接收。

创建调光器 View :

UIPanGestureRecognizer * panner = nil;
panner = [[UIPanGestureRecognizer alloc] initWithTarget: self action:@selector(handlePanGesture:)];
[self.view addGestureRecognizer:panner ];
[panner setDelegate:self];
[panner release];


CGRect frame = CGRectMake(0, 0, 320, 460);
self.dimmer = [[UIView alloc] initWithFrame:frame];
[self.dimmer setBackgroundColor:[UIColor blackColor]];
[self.view addSubview:dimmer];

处理平移手势:

-(IBAction) handlePanGesture:(UIPanGestureRecognizer *) sender
{
static CGPoint lastPosition = {0};
CGPoint nowPosition;
float alpha = 0.0;
float new_alpha = 0.0;
nowPosition = [sender translationInView: [self view]];
alpha = [dimmer alpha];

if (nowPosition.y > lastPosition.y)
{ NSLog(@"Down");
new_alpha = min(alpha + 0.02,1.0);
[dimmer setAlpha:(new_alpha)];
}
else if (nowPosition.y < lastPosition.y)
{
NSLog(@"Up");
new_alpha = max(alpha - 0.02,0);
[dimmer setAlpha:(new_alpha)];
}
else
{ NSLog(@" neither "); }
NSLog(@"alpha = %f new_alpha = %f", alpha, new_alpha);
lastPosition = nowPosition;
}

您知道事件为何被阻止吗?有更好的方法吗?
我读过几篇文章并用谷歌搜索了很多,但没有看到任何非常相关的内容。

感谢任何和所有帮助。

:bp:

最佳答案

尝试在调光器 View 上将 userInteractionEnabled 设置为 NO。这应该告诉 View 不要与触摸事件交互,这应该允许它们继续向下到达调光器下方的 View 。

关于iphone - IOS : setting 'dimmer' view's alpha to greater than 0. 0 禁用触摸事件(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4371054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com