Commit 12c429fc authored by Arthurli's avatar Arthurli

添加照片预览时 照片之间的间隔 目前设置为 20, 为私有属性 不可修改

parent 739cd943
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
UILabel *_numberLable; UILabel *_numberLable;
UIButton *_originalPhotoButton; UIButton *_originalPhotoButton;
UILabel *_originalPhotoLable; UILabel *_originalPhotoLable;
CGFloat _minimumLineSpacing;
} }
@end @end
...@@ -43,6 +45,7 @@ ...@@ -43,6 +45,7 @@
_assetsTemp = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedAssets]; _assetsTemp = [NSMutableArray arrayWithArray:_tzImagePickerVc.selectedAssets];
self.isSelectOriginalPhoto = _tzImagePickerVc.isSelectOriginalPhoto; self.isSelectOriginalPhoto = _tzImagePickerVc.isSelectOriginalPhoto;
} }
_minimumLineSpacing = 20;
[self configCollectionView]; [self configCollectionView];
[self configCustomNaviBar]; [self configCustomNaviBar];
[self configBottomToolBar]; [self configBottomToolBar];
...@@ -57,7 +60,7 @@ ...@@ -57,7 +60,7 @@
[super viewWillAppear:animated]; [super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES]; [self.navigationController setNavigationBarHidden:YES];
if (iOS7Later) [UIApplication sharedApplication].statusBarHidden = YES; if (iOS7Later) [UIApplication sharedApplication].statusBarHidden = YES;
if (_currentIndex) [_collectionView setContentOffset:CGPointMake((self.view.tz_width) * _currentIndex, 0) animated:NO]; if (_currentIndex) [_collectionView setContentOffset:CGPointMake((self.view.tz_width + _minimumLineSpacing) * _currentIndex, 0) animated:NO];
[self refreshNaviBarAndBottomBarState]; [self refreshNaviBarAndBottomBarState];
} }
...@@ -152,12 +155,11 @@ ...@@ -152,12 +155,11 @@
layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
layout.itemSize = CGSizeMake(self.view.tz_width, self.view.tz_height); layout.itemSize = CGSizeMake(self.view.tz_width, self.view.tz_height);
layout.minimumInteritemSpacing = 0; layout.minimumInteritemSpacing = 0;
layout.minimumLineSpacing = 0; layout.minimumLineSpacing = _minimumLineSpacing;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, self.view.tz_width , self.view.tz_height) collectionViewLayout:layout]; _collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(0, 0, self.view.tz_width , self.view.tz_height) collectionViewLayout:layout];
_collectionView.backgroundColor = [UIColor blackColor]; _collectionView.backgroundColor = [UIColor blackColor];
_collectionView.dataSource = self; _collectionView.dataSource = self;
_collectionView.delegate = self; _collectionView.delegate = self;
_collectionView.pagingEnabled = YES;
_collectionView.scrollsToTop = NO; _collectionView.scrollsToTop = NO;
_collectionView.showsHorizontalScrollIndicator = NO; _collectionView.showsHorizontalScrollIndicator = NO;
_collectionView.contentOffset = CGPointMake(0, 0); _collectionView.contentOffset = CGPointMake(0, 0);
...@@ -246,8 +248,17 @@ ...@@ -246,8 +248,17 @@
- (void)scrollViewDidScroll:(UIScrollView *)scrollView { - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGPoint offSet = scrollView.contentOffset; CGPoint offSet = scrollView.contentOffset;
_currentIndex = (offSet.x + (self.view.tz_width * 0.5)) / self.view.tz_width; CGFloat offSetWidth = offSet.x;
[self refreshNaviBarAndBottomBarState]; if ((offSetWidth + ((self.view.tz_width + _minimumLineSpacing) * 0.5)) < scrollView.contentSize.width + _minimumLineSpacing) {
offSetWidth = offSetWidth + ((self.view.tz_width + _minimumLineSpacing) * 0.5);
}
NSInteger currentIndex = offSetWidth / (self.view.tz_width + _minimumLineSpacing);
if (_currentIndex != currentIndex) {
_currentIndex = currentIndex;
[self refreshNaviBarAndBottomBarState];
}
} }
#pragma mark - UICollectionViewDataSource && Delegate #pragma mark - UICollectionViewDataSource && Delegate
...@@ -274,6 +285,32 @@ ...@@ -274,6 +285,32 @@
return cell; return cell;
} }
-(void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
{
CGFloat contentOffsetX = scrollView.contentOffset.x;
NSInteger MAX_INDEX = (scrollView.contentSize.width + _minimumLineSpacing)/(self.view.tz_width + _minimumLineSpacing) - 1;
NSInteger MIN_INDEX = 0;
NSInteger index = contentOffsetX/(self.view.tz_width + _minimumLineSpacing);
if (velocity.x > 0.4 && contentOffsetX < (*targetContentOffset).x) {
index = index + 1;
}
else if (velocity.x < -0.4 && contentOffsetX > (*targetContentOffset).x) {
index = index;
}
else if (contentOffsetX > (index + 0.5) * (self.view.tz_width + _minimumLineSpacing)) {
index = index + 1;
}
if (index > MAX_INDEX) index = MAX_INDEX;
if (index < MIN_INDEX) index = MIN_INDEX;
CGPoint newTargetContentOffset= CGPointMake(index * (self.view.tz_width + _minimumLineSpacing), 0);
*targetContentOffset = CGPointMake(scrollView.contentOffset.x, 0);
[scrollView setContentOffset:newTargetContentOffset animated:YES];
}
#pragma mark - Private Method #pragma mark - Private Method
- (void)refreshNaviBarAndBottomBarState { - (void)refreshNaviBarAndBottomBarState {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment