这几天主要工作都放在界面布局上边,主要对任务详情界面、创建任务界面、编辑任务界面的布局,其中一些小细节还未完善,主要使用Purelayout来添加约束,purelayout建立单个约束比较方便,使用起来相对VFL较灵活,常用的三种方法:
第一种:设置一个视图的高度或者宽度
[viewJian1 autoSetDimension:ALDimensionHeight toSize:25];
第二种:设置一个视图相对于另外一个视图的距离:
[viewJian1 autoPinEdge:ALEdgeLeft toEdge:ALEdgeLeft ofView:contentView withOffset:0];
第三种:设置一个视图的水平中线或者竖直中线跟另外一个视图一致:
[priceField autoAlignAxis:ALAxisHorizontal toSameAxisOfView:labelPrice];
在编辑任务界面,要多行的输入文字,所以在这里使用了UITextView,UITextView不能直接设置placeholder,在git上下载了一个第三方然后完成了这一功能。
在scrollView上添加视图时会遇到一些麻烦,因为苹果官方的设定,scrollView的约束是基于其子视图来定的,但是子视图的约束通常又要依赖于父视图来定,因此如果直接在scrollView上添加视图的约束,就会造成约束达不到既定的目的,在这里找到了一种解决办法,首先在scrollView上添加一个视图来限制scrollView的大小,这个视图即你想让scrollView的滑动区域,要给中间的视图添加约束来限制其宽高,然后再通过添加它与父视图scrollView之间的约束,来限制scrollView,事例代码如下:
//约束
[scrollView autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsMake(64, 0, 49, 0)];
//中间添加一层UIView,因为scrollView上添加约束有奇怪的问题
UIView *contentView = [[UIView alloc] initForAutoLayout];
[scrollView addSubview:contentView];
//添加约束
[contentView autoSetDimension:ALDimensionHeight toSize:800];
[contentView autoSetDimension:ALDimensionWidth toSize:MainScreenWidth];
[contentView autoPinEdgesToSuperviewEdgesWithInsets:UIEdgeInsetsMake(0, 0, 0, 0)];