在视图中对子视图排序

时间:2014-06-30 22:25:55

标签: ios objective-c uiview

在我的应用程序中,我有一个视图,以动态方式,我添加图像,例如,在900宽视图中,插入3个图像,1个200宽,另外350个和另外200个,如果我们尝试添加400不适合,那么我们将这3个图像彼此相邻放置,最后留下超过150,如第一张图片。我需要的是这三张图像的放置方式是彼此相同的距离,如第二张图片所示: enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

假设这是视图边框的左右偏移:

double offset = 10.0;

这是视图的框架:

CGRect viewFrame = self.view.frame;

计算3个位置:

第一个很简单,因为立即开始(明显偏移后):

double firstViewPosX = offset;

最后一个很简单,因为从最后开始减去该视图的 width

double thirdViewPosX = viewFrame.size.width - thirdView.frame.size.width - offset;

中心需要占据中间空间减去此视图的宽度,然后划分为2 将此偏移量与第一个视图的结尾相加

double secondViewPosX = offset + firstView.size.width + (thirdViewPosX - offset - firstView.size.width - secondView.frame.size.width)/2.0;

使最后一点更具可读性:

double endOfTheFirstViewX = offset + firstView.size.width;
double middleOffset = (thirdViewPosX - endOfTheFirstViewX - secondView.frame.size.width)/2.0;
double secondViewPosX = endOfTheFirstViewX + middleOffset;