То, что я хочу достичь, это галерея, она может содержать до 300 изображений, используя UIScrollView
, приведет к не оптимизированному использованию ram/cpu, поскольку он не делает пула (исправьте меня, если я 'm wrong), и у него есть ограничение по ширине, я не могу сделать его в 300 раз больше ширины экрана (верните меня, если я ошибаюсь).Как сделать привязку таблицы к центрам ячеек? (с иллюстрацией анимации gif)
поэтому правильный выбор будет использовать UITableView
1 - как сделать его прокрутки по горизонтали, как в этом GIF?
2 - как сделать это привязкой к центрам ячеек?
EDIT
Я использую это, это дает результат я хочу, но у него есть проблемы, он не имеет терпимости к сколько я должен красть, чтобы перейти к следующей ячейке , я все еще нужна помощь ..
func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool)
{
// Find collectionview cell nearest to the center of collectionView
// Arbitrarily start with the last cell (as a default)
var closestCell : UICollectionViewCell = collectionView.visibleCells()[0];
for cell in collectionView!.visibleCells() as [UICollectionViewCell]
{
let closestCellDelta = abs(closestCell.center.x - collectionView.bounds.size.width/2.0)
let cellDelta = abs(cell.center.x - collectionView.bounds.size.width/2.0)
if (cellDelta < closestCellDelta)
{
closestCell = cell
}
}
let indexPath = collectionView.indexPathForCell(closestCell)
collectionView.scrollToItemAtIndexPath(indexPath!, atScrollPosition: UICollectionViewScrollPosition.CenteredHorizontally, animated: true)
}
func scrollViewWillBeginDecelerating(scrollView: UIScrollView)
{
// Find collectionview cell nearest to the center of collectionView
// Arbitrarily start with the last cell (as a default)
var closestCell : UICollectionViewCell = collectionView.visibleCells()[0];
for cell in collectionView!.visibleCells() as [UICollectionViewCell]
{
let closestCellDelta = abs(closestCell.center.x - collectionView.bounds.size.width/2.0)
let cellDelta = abs(cell.center.x - collectionView.bounds.size.width/2.0)
if (cellDelta < closestCellDelta)
{
closestCell = cell
}
}
let indexPath = collectionView.indexPathForCell(closestCell)
collectionView.scrollToItemAtIndexPath(indexPath!, atScrollPosition: UICollectionViewScrollPosition.CenteredHorizontally, animated: true)
}
EDIT: -
мне удалось сделать это, не выше трески е.
я думаю, что вы хотите [UIPageViewController] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/) – Fonix
Для горизонтальной прокрутки UITableView, вы должны повернуть UITableView и каждой ячейке. Если вы хотите изменить только одну страницу путем прокрутки, вы можете использовать UIPageViewController. –