网站为什么需要备案,广州物流最新情况,网站建设-信科网络,百度网页搜索quarius开发框架旨在帮助独立开发者和中小型团队#xff0c;完成iOS App的快速实现与迭代。使用框架开发将给你带来简单、高效、易维护的编程体验。Aquarius布局系统简介Aquarius开发框架提供了一套完整的、极简的布局系统。通过该布局系统#xff0c;你可以轻松的完成基于代…quarius开发框架旨在帮助独立开发者和中小型团队完成iOS App的快速实现与迭代。使用框架开发将给你带来简单、高效、易维护的编程体验。Aquarius布局系统简介Aquarius开发框架提供了一套完整的、极简的布局系统。通过该布局系统你可以轻松的完成基于代码控制的视图布局。核心价值 一行顶多行 - 极简API大幅减少代码量⚡ 动效零成本 - 所有布局变化天然支持动画 关系式布局 - 直观表达视图间相对关系 批量好帮手 - 一次性操作多个视图 无缝兼容 - 基于原生frame即插即用系统特点直观的定位和大小调整方法内置动画支持多视图批量操作参见源码UIViewaLayout.swiftArrayaLayout.swift复杂度:基础布局:提供了对控件的基础设置高级布局:提供了控件间关系型的动态设置基础布局重塑单个视图的操控体验处理单个视图位置使用框架提供的方法你可以轻松的完成视图位置的获取和设置。获取x位置不使用框架的获取方式let x: CGFloat myView.frame.origin.x使用框架的获取方式let x: CGFloat myView.x()//或let x: CGFloat myView.left()设置x位置不使用框架的获取方式myView.frame.origin.x 10.0使用框架的获取方式myView.x(x: 10.0)//或myView.left(left: 10.0)获取y位置不使用框架的获取方式let y: CGFloat myView.frame.origin.y使用框架的获取方式let y: CGFloat myView.y()//或let y: CGFloat myView.top()设置y位置不使用框架的获取方式myView.frame.origin.y 10.0使用框架的获取方式myView.y(y: 10.0)//或myView.top(top: 10.0)获取右侧位置不使用框架的获取方式let right: CGFloat myView.frame.origin.x myView.frame.size.width使用框架的获取方式let right: CGFloat myView.right()设置右侧位置不使用框架的获取方式myView.frame.origin.x 200.0 - myView.frame.size.width使用框架的获取方式myView.right(right: 200)获取底部位置不使用框架的获取方式let bottom: CGFloat myView.frame.origin.y myView.frame.size.height使用框架的获取方式let bottom: CGFloat myView.bottom()设置底部位置不使用框架的获取方式myView.frame.origin.y 200.0 - myView.frame.size.height使用框架的获取方式myView.bottom(bottom: 200.0)大小使用框架提供的方法你可以轻松的完成视图大小的获取和设置。获取宽度不使用框架的获取方式let width: CGFloat myView.frame.size.width使用框架的获取方式let width: CGFloat myView.width()设置宽度不使用框架的获取方式myView.frame.size.width 100.0使用框架的获取方式myView.width(width: 100.0)获取高度不使用框架的获取方式let height: CGFloat myView.frame.size.height使用框架的获取方式let height: CGFloat myView.height()设置高度不使用框架的获取方式myView.frame.size.height 100.0使用框架的获取方式myView.height(height: 100.0)point获取point不使用框架的获取方式let point: CGPoint myView.frame.origin使用框架的获取方式let point: CGPoint myView.point()设置point不使用框架的获取方式myView.frame.origin CGPoint(x: 10.0, y: 10.0)使用框架的获取方式myView.point(x: 10.0, y: 10.0)//或myView.point(point: CGPoint(x: 10.0, y: 10.0)//或myView.point(points: [10.0, 10.0])//当x, y值相同时myView.point(xy: 10.0)Size获取Size不使用框架的获取方式let size: CGSize myView.frame.size使用框架的获取方式let size: CGSize myView.size()设置Size不使用框架的获取方式myView.frame.size CGSize(width: 100.0, height: 100.0)使用框架的获取方式myView.size(width: 100.0, height: 100.0)//或myView.size(w: 100.0, h: 100.0)//或myView.size(size: CGSize(width: 100.0, height: 100.0))//或myView.size(sizes: [100.0, 100.0])//当宽和高相同时myView.size(widthHeight: 100.0)frame获取frame不使用框架的获取方式let frame: CGRect myView.frame使用框架的获取方式let frame: CGRect myView.frame()设置frame不使用框架的获取方式myView.frame CGRect(x: 10.0, y: 10.0, width: 100.0, height: 100.0)//或myView.frame CGRect(origin: CGPoint(x: 10.0, y: 10.0), size: CGSize(width: 100.0, height: 100.0))使用框架的获取方式myView.frame(frame: CGRect(x: 10.0, y: 10.0, width: 100.0, height: 100.0))//或myView.frame(x: 10.0, y: 10.0, w: 100.0, h: 100.0)//或myView.frame(frames: [10.0, 10.0, 100.0, 100.0])//当x, y和宽、高相同时myView.frame(xy: 10.0, widthHeight: 100.0)处理多个视图基础操作设置多个视图相同的x值不使用框架的获取方式view1.frame.origin.x 10.0view2.frame.origin.x 10.0使用框架的获取方式UIView.x(x: 10.0, views: [view1, view2])//或UIView.left(left: 10.0, views: [view1, view2])设置多个视图相同的right值使用框架的获取方式UIView.right(right: 10.0, views: [view1, view2])设置多个视图相同的y值不使用框架的获取方式view1.frame.origin.y 10.0view2.frame.origin.y 10.0使用框架的获取方式UIView.y(y: 10.0, views: [view1, view2])//或UIView.top(top: 10.0, views: [view1, view2])设置多个视图相同的bottom值使用框架的获取方式UIView.bottom(bottom: 10.0, views: [view1, view2])设置多个视图相同的宽度不使用框架的获取方式view1.frame.size.width 100.0view2.frame.size.width 100.0使用框架的获取方式UIView.width(width: 100.0, views: [view1, view2])设置多个视图相同的高度不使用框架的获取方式view1.frame.size.height 100.0view2.frame.size.height 100.0使用框架的获取方式UIView.height(height: 100.0, views: [view1, view2])设置多个视图相同的point不使用框架的获取方式view1.frame.origin CGPoint(x: 10, y: 10)view2.frame.origin CGPoint(x: 10, y: 10)使用框架的获取方式UIView.point(x: 10.0, y: 10.0, views: [view1, view2])//或UIView.point(point: CGPoint(x: 10.0, y: 10.0), views: [view1, view2])//或UIView.point(points: [10.0, 10.0], views: [view1, view2])//当x, y值相同时UIView.point(xy: 10.0, views: [view1, view2])设置多个视图相同的Size不使用框架的获取方式view1.frame.size CGSize(width: 100.0, height: 100.0)view2.frame.size CGSize(width: 100.0, height: 100.0)使用框架的获取方式UIView.size(width: 100.0, height: 100.0, views: [view1, view2])//或UIView.size(w: 100.0, h: 100.0, views: [view1, view2])//或UIView.size(size: CGSize(width: 100.0, height: 100.0), views: [view1, view2])//或UIView.size(sizes: [100.0, 100.0], views: [view1, view2])//当宽和高相同时UIView.size(widthHeight: 100.0, views: [view1, view2])设置多个视图相同的frame不使用框架的获取方式view1.frame CGRect(x: 10.0, y: 10.0, width: 100.0, height: 100.0)view2.frame CGRect(x: 10.0, y: 10.0, width: 100.0, height: 100.0)//或view1.frame CGRect(origin: CGPoint(x: 10.0, y: 10.0), size:CGSize(width: 100.0, height: 100.0))view2.frame CGRect(origin: CGPoint(x: 10.0, y: 10.0), size:CGSize(width: 100.0, height: 100.0))使用框架的获取方式UIView.frame(x: 10.0, y: 10.0, w: 100.0, h: 100.0, views: [view1, view2])//或UIView.frame(frame: CGRect(x: 10.0, y: 10.0, width: 100.0, height: 100.0), views: [view1, view2])//或UIView.frame(frame: CGRect(origin: CGPoint(x: 10.0, y: 10.0), size: CGSize(width: 100.0, height: 100.0)), views: [view1, view2])//或UIView.frame(frames: [10.0, 10.0, 100.0, 100.0], views: [view1, view2])//当x, y和宽, 高相等时UIView.frame(xy: 10.0, widthHeight: 100.0, views: [view1, view2])对齐操作框架支持多个视图的对齐//顶端对齐UIView.top(views: [view1, view2, view3])//底部对齐UIView.bottom(views: [view1, view2, view3])//左侧对齐UIView.left(views: [view1, view2, view3])//右侧对齐UIView.right(views: [view1, view2, view3])支持对齐到某个目标位置//顶端对齐UIView.top(views: [view1, view2, view3], position: 50)//底部对齐UIView.bottom(views: [view1, view2, view3], position: 50)//左侧对齐UIView.left(views: [view1, view2, view3], position: 50)//右侧对齐UIView.right(views: [view1, view2, view3], position: 50)分布操作均匀分布视图// 在第一个和最后一个视图之间水平分布视图UIView.horizontal(views: [view1, view2, view3, view4])// 在第一个和最后一个视图之间垂直分布视图UIView.vertical(views: [view1, view2, view3, view4])组合对齐和分布操作在一次操作中对齐和分布视图// 顶端对齐并且水平分布视图UIView.topAndHorizontal(views: [view1, view2, view3, view4])// 顶端对齐到某个目标位置并且水平分布视图UIView.topAndHorizontal(views: [view1, view2, view3, view4], position: 50)// 底部对齐并且水平分布视图UIView.bottomAndHorizontal(views: [view1, view2, view3, view4])// 底部对齐到某个目标位置并且水平分布视图UIView.bottomAndHorizontal(views: [view1, view2, view3, view4], position: 50)// 左侧对齐并且垂直分布视图UIView.leftVertical(views: [view1, view2, view3, view4])// 左侧对齐到某个目标位置并且垂直分布视图UIView.leftVertical(views: [view1, view2, view3, view4], position: 50)// 右侧对齐并且垂直分布视图UIView.rightVertical(views: [view1, view2, view3, view4])// 右侧对齐到某个目标位置并且垂直分布视图UIView.rightVertical(views: [view1, view2, view3, view4], position: 50)批量操作框架支持数组的方式批量操作视图let views: [UIView] [view1, view2, view3]views.width(width: 100.0)views.width(width: 100.0, 1)//设置数组中第2个UIView的宽度views.height(height: 100.0)views.height(height: 100.0, 1)//设置数组中第2个UIView的高度高级布局构建智能的、响应式的界面Aquarius开发框架提供了一个强大且灵活的布局系统超越了基本的定位功能。通过高级布局技术帮助你用最少的代码和最大的灵活性创建复杂的UI布局。Aquarius开发框架通过全面的布局方法扩展了UIView这些方法建立在原生基于框架的布局系统之上使其更加直观和强大。与Auto Layout的基于约束的方法不同Aquarius开发框架提供了直接、命令式的API易于理解且可以无缝动画。相对定位基础操作Aquarius开发框架最强大的功能之一是它能够将视图相对于彼此定位。这消除了在排列视图时进行复杂计算的需要。// 将viewB定位在viewA下方间距为10ptviewB.alignTop(view: viewA, offset: 10)// 将viewB定位在viewA右侧间距为15ptviewB.alignLeft(view: viewA, offset: 15)// 将viewB定位在viewA左侧间距为8ptviewB.alignRight(view: viewA, offset: 8)// 将viewB定位在viewA上方间距为12ptviewB.alignBottom(view: viewA, offset: 12)批量操作let views: [UIView] [view1, view2, view3]// 将views数组定位在viewA下方间距为8ptviews.alignTop(view: viewA, offset: 8)// 将views数组中第2个视图定位在viewA下方间距为8ptviews.alignTop(view: viewA, offset: 8, 1)// 将views数组定位在viewA上方间距为8ptviews.alignBottom(view: viewA, offset: 8)// 将views数组中第2个UI视图在viewA上方间距为8ptviews.alignBottom(view: viewA, offset: 8, 1)// 将views数组定位在viewA右侧间距为8ptviews.alignLeft(view: viewA, offset: 8)// 将views数组中第2个视图视图iewA右侧间距为8ptviews.alignLeft(view: viewA, offset: 8, 1)// 将views数组定位在viewA左侧间距为8ptviews.alignRight(view: viewA, offset: 8)// 将views数组中第2个UI视图视图wA左侧间距为8ptviews.alignRight(view: viewA, offset: 8, 1)这些方法简化了流布局的创建并能够在处理动态内容时无需手动计算位置。等同定位基础操作当希望视图共享相同的边缘位置时equal方法提供了一个简洁的语法// 使viewB的左边缘与viewA相同可选偏移viewB.equalLeft(target: viewA, offset: 5)