iOS UIScrollView AutoLayout
来源:互联网 发布:视频照片制作软件 编辑:程序博客网 时间:2024/05/21 15:41
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.效果图如下:大家可以参考一下
- iOS UIScrollView AutoLayout
- [iOS]UIScrollView 使用 Autolayout
- iOS 关于AutoLayout和UIScrollView
- 【iOS】UIScrollView中的UIImageView居中 与 autoLayout
- IOS UIScrollView注意要点(AutoLayout情况)
- iOS Storyboard、xib中的UIScrollView使用autolayout
- AutoLayout UIScrollView
- UIScrollview AutoLayout
- iOS中Xcode使用UIScrollView+AutoLayout轻松实现滚动布局
- autolayout下的uiscrollview
- UIScrollView and Autolayout
- UIScrollView + AutoLayout结合使用
- UIScrollView遇上AutoLayout
- 当UIScrollView 遇到 autolayout
- UIScrollView和AutoLayout
- 使用AutoLayout添加UIScrollView
- UIScrollView 的AutoLayout
- AutoLayout 之 UIScrollView
- boost中移动语义的支持
- week6--4月8日
- 字母数字汉字排序问题
- java对象克隆clone
- DirectSound播放音频应用程序开发快速入门
- iOS UIScrollView AutoLayout
- 解决 Initializing Java Tooling 出现的问题
- 基类与派生类的转换
- HTML5之音频功能
- Innodb_io_capacity 对于IO稳定性的一些研究
- An internal error occurred during: "Launching WebMonitor on MyEclipse Tomcat "
- VLC播放RTSP视频延迟问题
- 大数据:fac
- 蘑菇街架构