1

在我的自动布局学习过程中,我目前正在尝试在 iPhone 上复制 Photos.app。

一切都很好,除了一个小细节:我似乎无法复制官方应用程序上的“排水沟”(间距/填充)。

每当我滚动到下一张(或上一张)图片时,我都希望看到图像之间的空白区域。

这很容易在没有自动布局的情况下通过增加滚动视图宽度及其 contentSize 来完成:

CGRect sFrame = self.view.frame;
sFrame.size.width += 20; //gutter width

UIScrollView *photoScroller = [[UIScrollView alloc] initWithFrame:sFrame];
photoScroller.contentSize = CGSizeMake(sFrame.size.width * 3, sFrame.size.height);
photoScroller.pagingEnabled = YES;

但我似乎无法使用自动布局复制这种行为。这就是我当前设置滚动视图的方式(简化):

UIScrollView *photoScroller = [[UIScrollView alloc] init];
photoScroller.pagingEnabled = YES;
photoScroller.translatesAutoresizingMaskIntoConstraints = NO;

[photoScroller addSubview:image_One];
[photoScroller addSubview:image_Two];
[photoScroller addSubview:image_Three];
[photoScroller addSubview:gutter_One];
[photoScroller addSubview:gutter_One_Two];
[photoScroller addSubview:gutter_Two_Three];
[photoScroller addSubview:gutter_Three];

[photoScroller addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[gutter_One(==20)][image_One][gutter_One_Two(==20)][image_two][gutter_Two_Three(==20)][image_Three][gutter_Three(==20)]|" options:0 metrics:0 views:dict]];

这样的事情可以实现吗?我可以设置任何可能的限制来提示系统这种行为吗?

Ps.:这都是在代码中完成的。Interface Builder 不用于此视图。

4

0 回答 0