私の自動レイアウト学習プロセスでは、現在 iPhone で Photos.app を複製しようとしています。
1 つの小さな詳細を除いて、すべてがうまく機能しています。公式アプリに存在する「ガター」(間隔/パディング) を再現できないようです。
次の (または前の) 画像にスクロールするたびに、画像間の空白スペースを表示したいと思います。
これは、スクロール ビューの幅とその 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 は使用されません。