我有一个UIScrollView有启用分页等等......我添加一个UIImageView的删除按钮,它被添加到UIScrollView。但是,当我从库中添加三个图像到scrollView,然后通过按删除按钮删除它们,它可以正常工作。但是,当我再次做同样的过程,它的叶子上的UIScrollView的UIImageViews仍然即使的PageControl的numberofpages为0UIScrollView删除不能正常工作
请你能告诉我什么,我做错了:
- (void) updateScrollView {
CGRect currentFrame = self.scrollView.frame;
currentFrame.origin.x = 0;
numberOfPages = [[self selectedImages] count];
if ([self.selectedImages count] > 0) {
for (UIImage *image in [self selectedImages]) {
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"Delete.png"] forState:UIControlStateNormal];
[btn setFrame:CGRectMake(0, 0, 30, 30)];
[btn setTag:[[self selectedImages] indexOfObject:image]];
[btn addTarget:self action:@selector(removeImageView:) forControlEvents:UIControlEventTouchUpInside];
UIImageView *imagev = [[UIImageView alloc] initWithImage:image];
[imagev setContentMode:UIViewContentModeScaleAspectFit];
[imagev setFrame:currentFrame];
[imagev addSubview:btn];
[imagev setUserInteractionEnabled:YES];
[self.scrollView addSubview:imagev];
[imagev release];
currentFrame.origin.x = currentFrame.origin.x + currentFrame.size.width;
}
}
else {
[self.selectedImages removeAllObjects];
for (int i = 0; i < [self.scrollView.subviews count]; i++) {
[[self.scrollView.subviews objectAtIndex:i] removeFromSuperview];
}
return;
}
self.pageControl.numberOfPages = [self.selectedImages count];
[self.scrollView setPagingEnabled:YES];
[self.scrollView setContentSize:CGSizeMake(currentFrame.origin.x, currentFrame.size.height)];
}
- (void) removeImageView:(UIButton *)sender {
if ([self.selectedImages count] >= 1) {
int i = sender.tag;
id superv = [sender superview];
[superv removeFromSuperview];
[self.selectedImages removeObjectAtIndex:i];
[self updateScrollView];
}
else {
[self.selectedImages removeAllObjects];
}
return;
}
- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
CGFloat pageWidth = scrollView.frame.size.width;
currentPage = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
[self.pageControl setCurrentPage:currentPage];
return;
}
- (void) updatePageControl:(id)sender {
UIPageControl *pg = (UIPageControl *)sender;
CGRect frame = self.scrollView.frame;
frame.origin.x = frame.size.width * pg.currentPage;
frame.origin.y = 0;
[self.scrollView scrollRectToVisible:frame animated:YES];
}
- (void) removeObject:(id)object {
[self.selectedImages removeObject:object];
[self updateScrollView];
[self updatePageControl:self.pageControl];
CGFloat pageWidth = self.scrollView.frame.size.width;
currentPage = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
[self.pageControl setCurrentPage:currentPage];
return;
}