iOS 做下拉框列表

首先建一个popviewcontroller,实现数据写一个代理回调。在跳转之前设置contorller的frame.然后背景设置透明度,tableview 滚动enabled设置


- (IBAction)selectRightItem:(UIBarButtonItem*)sender

{

if(_backgroudView!=nil) {

[selfviewWillDisappear:YES];

return;

}

_tableView.scrollEnabled=NO;

//pop.modalPresentationStyle = UIModalPresentationPopover;

//UIPopoverPresentationController *popVC = pop.popoverPresentationController;

//popVC.delegate = self;

//popVC.barButtonItem = sender;

pop.delegate=self;

pop.view.frame=CGRectMake(SCREENWIDTH-10-134,64,134,7*44);

_backgroudView=[[BackgroudViewalloc]initWithFrame:CGRectMake(0,0,self.view.frame.size.width,self.view.frame.size.height)];

[_backgroudViewsetBackgroundColor:[UIColorcolorWithWhite:0.0alpha:0.4]];

[_backgroudViewaddSubview:pop.view];

UITapGestureRecognizer*tapgestureRecognizer=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(viewWillDisappear:)];

tapgestureRecognizer.delegate=self;

[_backgroudViewaddGestureRecognizer:tapgestureRecognizer];

[self.view.windowaddSubview:_backgroudView];

}

-(void)popoverViewdidSelectRowAtIndex:(NSInteger)index

{

NSLog(@"index=====%d",index);

[selfviewWillDisappear:YES];

}

//- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller

//{

//return UIModalPresentationNone;

//}

-(void)viewWillDisappear:(BOOL)animated

{

_tableView.scrollEnabled=YES;

[_backgroudViewremoveFromSuperview];

_backgroudView=nil;

}

-(void)touchesBegan:(NSSet<UITouch*> *)touches withEvent:(UIEvent*)event

{

}

-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch{

if([touch.viewisDescendantOfView:pop.view]) {

returnNO;

}

returnYES;

}

-(void)scrollViewDidScroll:(UIScrollView*)scrollView

{

scrollViewY=scrollView.contentOffset.y;

NSLog(@"scrollViewY======%f",scrollViewY);

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现cl...
    以德扶人阅读 2,557评论 2 50
  • 1.badgeVaule气泡提示 2.git终端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夹内容...
    i得深刻方得S阅读 4,805评论 1 9
  • 1.UILabel 1) label.frame //CGRectMake(x, y, width, he...
    青春flame阅读 701评论 0 2
  • 海边的小石头,风起云涌 艳阳天的六月里,你的视线停留在了记忆的空间 扬起的迷惘脸庞,是否有着不可言说的秘密 至此终...
    阿俊xi阅读 290评论 2 2
  • 一、什么是内存泄漏 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露...
    老实李阅读 538评论 0 2