Я работаю над анимацией размером около collectionViewCells
. Он отлично работает в моем collectionViewController
, но в другом UIViewController
, где у меня есть маленький collectionView
рядом с другими объектами, ячейка будет расти только до размера collectionView
. Я бы хотел, чтобы он заполнил весь экран. Каков наилучший способ сделать это?Анимация CollectionViewCell Size To Outside CollectionView Граница - Swift
Вот мой текущий код:
var largePhotoIndexPath : NSIndexPath? {
didSet{
var indexPaths = [NSIndexPath]()
if largePhotoIndexPath != nil {
indexPaths.append(largePhotoIndexPath!)
}
if oldValue != nil {
indexPaths.append(oldValue!)
}
collectionView?.performBatchUpdates({() -> Void in
self.collectionView?.reloadItemsAtIndexPaths(indexPaths)
return
}){
completed in
if self.largePhotoIndexPath != nil {
self.collectionView?.scrollToItemAtIndexPath(self.largePhotoIndexPath!, atScrollPosition: .CenteredVertically, animated: true)
}
}
}
}
func collectionView(collectionView: UICollectionView, shouldSelectItemAtIndexPath indexPath: NSIndexPath) -> Bool {
if largePhotoIndexPath == indexPath {
largePhotoIndexPath = nil
}
else {
largePhotoIndexPath = indexPath
}
return false
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
let dealImage: UIImage = UIImage(data: self.imageDataArray[indexPath.row])!
let dealPhoto: UIImageView = UIImageView(image: dealImage)
if indexPath == largePhotoIndexPath {
var size = UIScreen.mainScreen().bounds
dealPhoto.frame == size
return CGSize(width: 300, height: 525)
}
return CGSize(width: 100, height: 175)
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.imageDataArray.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! TrailInfoCollectionViewCell
cell.imageView.image = UIImage(data: self.imageDataArray[indexPath.row])
return cell
}
И некоторые изображения до и после того, как я выбираю ячейку:
Как вы можете увидеть, что изображение имеет выращенный до размера, который я хочу, но он ограничен collectionView
. Возможно ли, чтобы collectionViewCell
превысил границы collectionView
, или мне нужно будет сделать это по-другому? Я бы просто создал скрытый imageView
, но мне нравится анимированный переход.
Благодарим за помощь. Пожалуйста, дайте мне знать, если вам нужны подробности.
Привет, Мика, большое спасибо за ваш комментарий. Звучит достаточно легко, но что именно я должен изменить BoundToView? Я пробовал камеру и изображение, но BoundToView не распознается. Извините, я очень к этому не знаком. Большое спасибо. Jon –
Извините. Я набрал это немного быстро на своем телефоне. Это клипы. Я отредактирую. – Mika
Это работает отлично. Благодарю. Единственная проблема теперь в том, что изображения не центрируются на экране? Вы знаете, как я могу это сделать? Я думал, что строка 'self.collectionView.scrollToItemAtIndexPath (self.largePhotoIndexPath !, atScrollPosition: .CenteredVertically, animated: true)' сделает это для меня, но, по-видимому, нет. Любая дополнительная помощь очень ценится, но большое спасибо за вашу помощь. –