2016-06-05 5 views
1

[! [CollectionView пример] [1]] [1]UICollectionView пользовательского горизонтальная подкачка макет

Я пытаюсь подражать такое поведение, используя представление коллекции. Я начал работать с этим методом, и он приблизил меня. Хотя по мере того, как я прокручиваю все дальше и дальше прямо на мой горизонтальный пейджинг CollectionView, содержимое перемещается дальше и дальше. Также расстояние между ячейками отключено. Я считаю, что для этого требуется собственный макет, но я не уверен.

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 

    return CGSize(width: collectionView.frame.width - 20, height: collectionView.frame.height - 20) 

} 
+0

чем собственно вопрос здесь? – Shubhank

ответ

6

зависит от 3 факторов 1) Раздел вставках 2) Cell Spacing 3) Размер ячейки

Любое изменение в каждом вы должны изменить другие для вашего случая

1) Набор оставил & право с 20

enter image description here

2) установить расстояние между ячейками 10

func collectionView(collectionView: UICollectionView, 
    layout collectionViewLayout: UICollectionViewLayout, 
    minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { 
     return 10 
} 
func collectionView(collectionView: UICollectionView, layout 
    collectionViewLayout: UICollectionViewLayout, 
    minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { 
     return 10 
} 

3) Установить размер ячейки

func collectionView(collectionView: UICollectionView, 
    layout collectionViewLayout: UICollectionViewLayout, 
    sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
     return CGSize(width: collectionView.frame.width/1.15 ,height: collectionView.frame.height) 
} 

4), это будет центр ячейки в окне

func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) { 

    let pageWidth:CGFloat = scrollView.frame.width/1.15 + cellSpacing ; 

    let currentOffset:CGFloat = scrollView.contentOffset.x; 
    let targetOffset:CGFloat = targetContentOffset.memory.x 
    var newTargetOffset:CGFloat = 0; 

    if targetOffset > currentOffset 
    { 
     newTargetOffset = ceil(currentOffset/pageWidth) * pageWidth; 
    } 
    else 
    { 
     newTargetOffset = floor(currentOffset/pageWidth) * pageWidth; 
    } 

    if newTargetOffset < 0 
    { 
     newTargetOffset = 0 
    } 
    else if newTargetOffset > scrollView.contentSize.width 
    { 
    newTargetOffset = scrollView.contentSize.width; 
    } 

    targetContentOffset.memory.x = currentOffset 

    scrollView.setContentOffset(CGPointMake(newTargetOffset, 0), animated: true) 

} 
+0

Ссылка на эту ссылку – Preetha

+0

http://stackoverflow.com/questions/19301762/uicollectionview-horizontal-scroll-horizontal-layout – Preetha

+0

как вы пришли к 1.15? – mparrish91

Смежные вопросы