UINavigationController+UIScrollView内容视图全屏显示的方法
我在程序开发时发现,将UINavigationController+UIScrollView组合起来使用时,我将UIImageView放入UIScrollView时,UIImageView并不是按照我预想的那样,以UIScrollView的顶点作为视图添加的位置,这是由于UINavigationController在添加了导航栏以后,将会以导航栏下方作为UIScrollView的原点位置,有时候我们想完全显示该视图的内容,解决方法,看下面这个程序
#import"RootViewController.h"@interfaceRootViewController()@property(retain,nonatomic,readwrite)UIScrollView*scrollView;@end@implementationRootViewController#defineHIGHTOFNVBAR64#defineHIGHTOFTOOLBAR44-(instancetype)init{self=[superinit];if(self){}returnself;}-(void)viewDidLoad{[superviewDidLoad];[self.navigationControllersetNavigationBarHidden:NOanimated:NO];[self.navigationControllersetToolbarHidden:NOanimated:NO];self.view.backgroundColor=[UIColorblackColor];_scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(0,0,320,480)];_scrollView.contentSize=CGSizeMake(960,0);_scrollView.backgroundColor=[UIColorredColor];[self.viewaddSubview:_scrollView];UITapGestureRecognizer*tapGesture=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap:)];[_scrollViewaddGestureRecognizer:tapGesture];_scrollView.pagingEnabled=YES;_scrollView.userInteractionEnabled=YES;_scrollView.showsHorizontalScrollIndicator=NO;_scrollView.showsVerticalScrollIndicator=NO;UIImageView*p_w_picpathView1=[[UIImageViewalloc]initWithFrame:CGRectMake(0,0,320,480)];UIImageView*p_w_picpathView2=[[UIImageViewalloc]initWithFrame:CGRectMake(320,0,320,480)];UIImageView*p_w_picpathView3=[[UIImageViewalloc]initWithFrame:CGRectMake(640,0,320,480)];p_w_picpathView1.p_w_picpath=[UIImagep_w_picpathNamed:@"IMG_0242.JPG"];p_w_picpathView2.p_w_picpath=[UIImagep_w_picpathNamed:@"IMG_0243.JPG"];p_w_picpathView3.p_w_picpath=[UIImagep_w_picpathNamed:@"IMG_0244.JPG"];_scrollView.contentInset=UIEdgeInsetsMake(-HIGHTOFNVBAR,0,0,0);self.navigationController.toolbar.translucent=YES;self.navigationController.navigationBar.translucent=YES;_scrollView.delegate=self;NSLog(@"%@",NSStringFromCGRect(p_w_picpathView2.frame));[_scrollViewaddSubview:p_w_picpathView1];[_scrollViewaddSubview:p_w_picpathView2];[_scrollViewaddSubview:p_w_picpathView3];}-(void)tap:(UITapGestureRecognizer*)tap{staticinti=0;if(i%2==0){[self.navigationControllersetNavigationBarHidden:YESanimated:YES];[self.navigationControllersetToolbarHidden:YESanimated:YES];_scrollView.contentInset=UIEdgeInsetsMake(0,0,HIGHTOFTOOLBAR,0);}else{[self.navigationControllersetNavigationBarHidden:NOanimated:YES];[self.navigationControllersetToolbarHidden:NOanimated:YES];_scrollView.contentInset=UIEdgeInsetsMake(0,0,-HIGHTOFTOOLBAR,0);}i++;}
使用UIScrollerView的contentInset属性对UIScrollerView进行扩展即可
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。