gpt4 book ai didi

ios - 在 UITabBar 下方获取输入

转载 作者:行者123 更新时间:2023-11-29 13:43:32 26 4
gpt4 key购买 nike

我有一个横幅,需要在标签栏 Controller 中的标签栏下方显示。让它显示并不是困难的部分,我已经解决了这个问题,但是不知何故,我使用的方法似乎是将它放在正常区域之外以接收输入。

基本上,我将这个横幅用作广告,但我不希望它覆盖标签栏。

这是我用来在标签栏下方创建横幅的代码:

    const float footerHeight = 34.5;
const float statusBarHeight = 20.f;
const float viewHeight = 480 - statusBarHeight - bannerHeight - footerHeight;
const float viewY = 0 + statusBarHeight + bannerHeight;

UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, viewHeight, 320, footerHeight)];
[footerView setContentMode:UIViewContentModeScaleToFill];
[footerView addSubview:footerButton];

[self.tabBarController.view addSubview:footerView];
[footerView release];

self.tabBarController.view.frame = CGRectMake(0, viewY, 320, viewHeight);

仅供某些变量引用, View 顶部上方还有一个标题。 footerButton 是我在 IB 中创建并连接的 UIButton。

最佳答案

我最终通过在根 UIWindow 对象上放置一个 UITapGestureRecognizer 来解决这个问题,然后手动进行矩形检查以查看它是否在正常范围内, tabBarController 的更小边界,否则将输入转发到我的页脚栏

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
CGPoint touchPoint = [touch locationInView:self.window];
if ( touchPoint.y > 57 && touchPoint.y < 446 )
{
return NO;
}
return YES;
}

-(IBAction) handleTap:(UIGestureRecognizer*)sender
{
if ( sender.state == UIGestureRecognizerStateEnded )
{
//handle
CGPoint tapPoint = [sender locationOfTouch:0 inView:self.window];
if ( tapPoint.y >= 446 )
{
[footerButton clickedAd];
}
NSLog(@"(%f,%f)", tapPoint.x, tapPoint.y );
}
}

关于ios - 在 UITabBar 下方获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8332786/

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