1.使用UIScrollView必须得先加一层ContentView,作为ScrollView的内容视图。
2.然后使ContentView与ScrollView的内容大小一致。(即设置ContentView的Trailing,Align,Bottom,Align)。另外在设置ContentView与ScrollView宽高一致(Equal Width,Equal Height)由于我做的是左右滚动所以要把Trailing的值设为1.若是上下滚动则设置Bottom的值为1
3.将Equal Widths设置成属性(后期界面旋转的时候要用)
4.代码部分初始化(代码写入2个tableView)
_myScroll.delegate=self;
self.contentWidht.constant=ScreenWidth;//暂时不明白为什么不是2倍的宽度(之前设置ScrollView.contentSize都是2倍视图宽度)
NSLog(@"%f",self.contentWidht.constant);
self.myScroll.bounces=NO;
self.title=@"测试列表";
_tableOne=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, ScreenWidth, self.view.frame.size.height) style:UITableViewStylePlain];
_tableOne=[[UITableView alloc]init];
_tableOne.delegate=self;
_tableOne.dataSource=self;
_tableOne.backgroundColor=[UIColor redColor];
[_tableOne setTranslatesAutoresizingMaskIntoConstraints:NO];
[_myView addSubview:_tableOne];
NSDictionary *metrics=@{@"myWidth":[NSNumber numberWithFloat:ScreenWidth]};
NSArray *constriont1=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_tableOne(myWidth)]-0-|" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_tableOne,_myView)];
NSArray *constriont2=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_tableOne]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableOne)];
[self.myView addConstraints:constriont2];
[self.myView addConstraints:constriont1];
_tableTwo=[[UITableView alloc]initWithFrame:CGRectMake(ScreenWidth, 0, self.view.frame.size.width, self.myScroll.frame.size.height) style:UITableViewStylePlain];
[_tableTwo setTranslatesAutoresizingMaskIntoConstraints:NO];
_tableTwo.delegate=self;
_tableTwo.dataSource=self;
_tableTwo.backgroundColor=[UIColor blueColor];
[_myView addSubview:_tableTwo];
NSArray *constriont3=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-myWidth-[_tableTwo(myWidth)]-0-|" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_tableTwo)];
NSArray *constriont4=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_tableTwo]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableTwo)];
[self.myView addConstraints:constriont3];
[self.myView addConstraints:constriont4];
5.界面旋转部分
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
if (toInterfaceOrientation == UIDeviceOrientationPortrait || toInterfaceOrientation ==UIDeviceOrientationPortraitUpsideDown) {
//翻转为竖屏时
NSLog(@"竖屏");
self.contentWidht.constant=ScreenWidth;
NSLog(@"%f",ScreenHeight);
NSLog(@"%f",ScreenWidth);
for (NSLayoutConstraint *constry in self.myView.constraints) {
[self.myView removeConstraint:constry];
}
NSDictionary *metrics=@{@"myWidth":[NSNumber numberWithFloat:ScreenWidth]};
NSArray *constriont1=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_tableOne(myWidth)]-0-|" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_tableOne,_myView)];
NSArray *constriont2=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_tableOne]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableOne)];
[self.myView addConstraints:constriont2];
[self.myView addConstraints:constriont1];
NSArray *constriont3=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-myWidth-[_tableTwo(myWidth)]-0-|" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_tableTwo)];
NSArray *constriont4=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_tableTwo]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableTwo)];
[self.myView addConstraints:constriont3];
[self.myView addConstraints:constriont4];
// [self setVerticalFrame];
}else if (toInterfaceOrientation==UIDeviceOrientationLandscapeLeft || toInterfaceOrientation ==UIDeviceOrientationLandscapeRight) {
//翻转为横屏时
NSLog(@"横屏");
self.contentWidht.constant=ScreenWidth;
NSLog(@"%f",ScreenHeight);
NSLog(@"%f",ScreenWidth);
for (NSLayoutConstraint *constry in self.myView.constraints) {
[self.myView removeConstraint:constry];
}
NSDictionary *metrics=@{@"myWidth":[NSNumber numberWithFloat:ScreenWidth]};
NSArray *constriont1=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_tableOne(myWidth)]-0-|" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_tableOne,_myView)];
NSArray *constriont2=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_tableOne]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableOne)];
[self.myView addConstraints:constriont2];
[self.myView addConstraints:constriont1];
NSArray *constriont3=[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-myWidth-[_tableTwo(myWidth)]-0-|" options:0 metrics:metrics views:NSDictionaryOfVariableBindings(_tableTwo)];
NSArray *constriont4=[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_tableTwo]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(_tableTwo)];
[self.myView addConstraints:constriont3];
[self.myView addConstraints:constriont4];
// [self setHorizontalFrame];
}
}
5.效果图如下:大家可以参考一下