UIView底部不可点击
问题描述:
我有这个奇怪的问题,这是最近几天驱动我的坚果。尝试了论坛中提出的各种各样的东西和窍门,但迄今为止没有运气。基本上我有tabbarview控制器与桌面视图时,用户单击它所需的表格行到详细画面。我在屏幕底部有四个固定按钮,但这些按钮不可点击或不能识别触摸。我想这是与主屏幕尺寸或应用程序视图框架。如果我将按钮放在大约CGRectMake(0,330,320,50)处,这意味着在底部留下大约50个净空间然后它们就可以工作。下面是针对此问题相关的代码 -UIView底部不可点击
//Bottom fixed Bar and Buttons//
self.edgesForExtendedLayout=UIRectEdgeNone;
UIImageView *lineImg=[[UIImageView alloc]init];
//lineImg.frame=CGRectMake(0, 748, 320, 2);
[lineImg setBackgroundColor:[UIColor colorWithRed:0.9058 green:0.4705 blue:0 alpha:1.0]];
[self.view addSubview:lineImg];
addFavBtn=[UIButton buttonWithType:UIButtonTypeCustom];
[addFavBtn setBackgroundColor:[UIColor colorWithRed:0.0392 green:0.1686 blue:0.2196 alpha:1.0]];
[addFavBtn setTitle:@"Add Fav" forState:UIControlStateNormal];
[addFavBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
addFavBtn.titleLabel.textAlignment=NSTextAlignmentCenter;
addFavBtn.titleLabel.font=[UIFont fontWithName:@"MyriadPro-Regular" size:20];
[addFavBtn addTarget:self action:@selector(addFavBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:addFavBtn];
addFavBtn.userInteractionEnabled=YES;
UIImageView *lineImg1=[[UIImageView alloc]init];
//lineImg1.frame=CGRectMake(80, 750, 1, 35);
[lineImg1 setBackgroundColor:[UIColor whiteColor]];
[self.view addSubview:lineImg1];
shareBtn=[UIButton buttonWithType:UIButtonTypeCustom];
//shareBtn.frame=CGRectMake(81, 750, 79, 35);
[shareBtn setBackgroundColor:[UIColor colorWithRed:0.0392 green:0.1686 blue:0.2196 alpha:1.0]];
[shareBtn setTitle:@"Share" forState:UIControlStateNormal];
[shareBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
shareBtn.titleLabel.textAlignment=NSTextAlignmentCenter;
shareBtn.titleLabel.font=[UIFont fontWithName:@"MyriadPro-Regular" size:20];
[shareBtn addTarget:self action:@selector(shareBtnClick:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:shareBtn];
UIImageView *lineImg2=[[UIImageView alloc]init];
//lineImg2.frame=CGRectMake(160, 748, 1, 35);
[lineImg2 setBackgroundColor:[UIColor whiteColor]];
[self.view addSubview:lineImg2];
reviewBtn=[UIButton buttonWithType:UIButtonTypeCustom];
//reviewBtn.frame=CGRectMake(161, 750, 79, 35);
[reviewBtn setBackgroundColor:[UIColor colorWithRed:0.0392 green:0.1686 blue:0.2196 alpha:1.0]];
[reviewBtn setTitle:@"Review" forState:UIControlStateNormal];
[reviewBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
reviewBtn.titleLabel.textAlignment=NSTextAlignmentCenter;
reviewBtn.titleLabel.font=[UIFont fontWithName:@"MyriadPro-Regular" size:20];
[reviewBtn addTarget:self action:@selector(reviewBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:reviewBtn];
UIImageView *lineImg3=[[UIImageView alloc]init];
// lineImg3.frame=CGRectMake(240, 750, 1, 35);
[lineImg3 setBackgroundColor:[UIColor whiteColor]];
[self.view addSubview:lineImg3];
helpBtn=[UIButton buttonWithType:UIButtonTypeCustom];
//helpBtn.frame=CGRectMake(241, 750, 79, 35);
[helpBtn setBackgroundColor:[UIColor colorWithRed:0.0392 green:0.1686 blue:0.2196 alpha:1.0]];
[helpBtn setTitle:@"Help" forState:UIControlStateNormal];
[helpBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
helpBtn.titleLabel.textAlignment=NSTextAlignmentCenter;
helpBtn.titleLabel.font=[UIFont fontWithName:@"MyriadPro-Regular" size:20];
[helpBtn addTarget:self action:@selector(helpViewBtnClick) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:helpBtn];
UIImageView *lineImgLast=[[UIImageView alloc]init];
//lineImgLast.frame=CGRectMake(0, 748, 320, 2);
[lineImgLast setBackgroundColor:[UIColor colorWithRed:0.0392 green:0.1686 blue:0.2196 alpha:1.0]];
[self.view addSubview:lineImgLast];
imageNameDetailArray=[[NSMutableArray alloc]init];
parkListDetailArray=[[NSMutableArray alloc]init];
parkListViseDetailArray=[[NSMutableArray alloc]init];
self.responseData=[NSMutableData data];
//get the size of the screen
CGSize result = [[UIScreen mainScreen] bounds].size; //to see the actual screen size - returns 568
CGSize frame = [[UIScreen mainScreen] applicationFrame].size; //to see the application frame size - returns 548
//UIScreen *screen = [UIScreen mainScreen];
//CGRect fullScreenRect = screen.bounds;
[self.view setAutoresizingMask:UIViewAutoresizingFlexibleHeight];
NSLog(@"mainscreen size - %f",result.height);
NSLog(@"Application frame size - %f",frame.height);
int newSize=cs+50;
int fBar=result.height-50;
homeBg.frame=CGRectMake(0,0, 320, result.height);
//set the height of the scroller view
parkViewScrollView.frame=CGRectMake(0, 63, 320, result.height-128);
parkViewScrollView.contentSize=CGSizeMake(320, newSize);
lineImg.frame=CGRectMake(0, fBar, 320, 2);
addFavBtn.frame=CGRectMake(0, fBar+2, 79, 48);
lineImg1.frame=CGRectMake(80, fBar+2, 1, 48);
shareBtn.frame=CGRectMake(81, fBar+2, 79, 48);
lineImg2.frame=CGRectMake(160, fBar+2, 1, 48);
reviewBtn.frame=CGRectMake(161, fBar+2, 79, 48);
lineImg3.frame=CGRectMake(240, fBar+2, 1, 48);
helpBtn.frame=CGRectMake(241, fBar+2, 79, 48);
答
谢谢大家的响应。有趣的是,即使tabbar仍然隐藏,我无法使用该按钮的保留空间。在推送细节视图控制器之前,我已经使用了以下行。这似乎工作正常,我现在可以点击所有按钮。
//this one line of code did the trick after spending hours of time
objDetailView.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewController:objDetailView animated:YES];
这些按钮是否显示在链接的图像中,隐藏了标签栏控制器的选项卡?如果是这样,你是如何让他们不在标签后面的? – rdelmar 2014-10-30 04:41:50
您是否尝试将按钮视图置于主视图前方? – Gamerlegend 2014-10-30 05:02:48
感谢您的回复,我已经尝试过,但没有运气。 detailview中没有tabbar视图 - “code”[self.view bringSubviewToFront:addFavBtn]; [self.view bringSubviewToFront:shareBtn]; [self.view bringSubviewToFront:reviewBtn]; [self.view bringSubviewToFront:helpBtn]; 'code' – Tajuddin 2014-10-30 05:44:50