我試圖在UIScrollview中創建一個UIimages列表。當我水平實現它它工作的方式我想這樣的:UIScrollView中的垂直圖像
正如你看到的圖像粘在一起。
然後我試着垂直。它的工作原理,但圖像之間的不必要的空間,偏偏喜歡:
這是我的代碼:
@synthesize scrollView, pageControl;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
pageControlBeingUsed = NO;
NSArray *pageImages = [NSArray arrayWithObjects:
[UIImage imageNamed:@"photo1.png"],
[UIImage imageNamed:@"photo2.png"],
[UIImage imageNamed:@"photo3.png"],
[UIImage imageNamed:@"photo4.png"],
[UIImage imageNamed:@"photo5.png"],
nil];
for (int i = 0; i < pageImages.count; i++) {
CGRect frame;
//frame.origin.x = self.scrollView.frame.size.width * i;
//frame.origin.y = 0;
frame.origin.x = 0;
frame.origin.y = self.scrollView.frame.size.height * i;
frame.size = self.scrollView.frame.size;
UIImageView *newPageView = [[UIImageView alloc] initWithImage:[pageImages objectAtIndex:i]];
newPageView.contentMode = UIViewContentModeScaleAspectFit;
newPageView.frame = frame;
[self.scrollView addSubview:newPageView];
}
//self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * pageImages.count , self.scrollView.frame.size.height);
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width , self.scrollView.frame.size.height* pageImages.count);
self.pageControl.currentPage = 0;
self.pageControl.numberOfPages = pageImages.count;
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
if (!pageControlBeingUsed) {
// Switch the indicator when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.height;
int page = floor((self.scrollView.contentOffset.y - pageWidth/2)/pageWidth) + 1;
//CGFloat pageWidth = self.scrollView.frame.size.width;
//int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
self.pageControl.currentPage = page;
}
}
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
pageControlBeingUsed = NO;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
pageControlBeingUsed = NO;
}
- (IBAction)changePage {
// Update the scroll view to the appropriate page
CGRect frame;
frame.origin.x = 0;
frame.origin.y = self.scrollView.frame.size.height * self.pageControl.currentPage;
// frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
// frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
[self.scrollView scrollRectToVisible:frame animated:YES];
// Keep track of when scrolls happen in response to the page control
// value changing. If we don't do this, a noticeable "flashing" occurs
// as the the scroll delegate will temporarily switch back the page
// number.
pageControlBeingUsed = YES;
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.scrollView = nil;
self.pageControl = nil;
}
- (void)dealloc {
[scrollView release];
[pageControl release];
[super dealloc];
}
@end
代碼
水平行代碼註釋。
你能幫我把這個不需要的空間去掉嗎?
你的問題解決了.... :) – Rajneesh071