カスタム ビューを既存の UIScrollView にプログラムで追加しようとしています。私はネットサーフィンをして可能な解決策を見つけましたが、解決策は既存の自動レイアウトを台無しにします。カスタム ビューのスーパー ビュー (つまり、スクロール ビュー) とカスタム ビューの間に垂直方向のスペースを追加する必要があります。そのため、ユーザーが大きな画面 (iPhone5) から小さな画面 (iPhone4s など) に切り替えるたびに、またはその逆に画面に応じてカスタム ビューが調整されます。
-(void) createEventsOnScroll
{
[imageScroller setContentSize:CGSizeMake(self.imageArray.count*imageScroller.frame.size.width, imageScroller.frame.size.height)];
[imageScroller setContentOffset:CGPointMake(imageScroller.frame.size.width*self.selectedEventIndex,0)];
imageScroller.showsHorizontalScrollIndicator = NO;
for (int i = 0; i<self.imageArray.count; i++)
{
EventCustomView *event = [[EventCustomView alloc]initWithFrame:CGRectMake(i*320+5, 3, 310, 435)];
ChildImage *child = [self.imageArray objectAtIndex:i];
NSData *data = [NSData dataWithContentsOfFile:child.imageURL];
event.eventImage.image = [UIImage imageWithData:data];
[event.eventImage setContentMode:UIViewContentModeScaleAspectFit];
event.noteView.delegate = self;
[imageScroller addSubview:event];
event.translatesAutoresizingMaskIntoConstraints = NO;
imageScroller.translatesAutoresizingMaskIntoConstraints = NO;
NSMutableArray *constraints = [[NSMutableArray alloc]init];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"|[event]|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(event)]];
[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[event]-5-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(event)]];
}
imageScroller.bounces = NO;
imageScroller.delegate = self;
[imageScroller setClipsToBounds:NO];
imageScroller.scrollEnabled = YES;
imageScroller.pagingEnabled = YES;
}
前もって感謝します。