Iphone 检测滚动视图上的图像
请帮助我,在我滚动时检测滚动视图上的图像Iphone 检测滚动视图上的图像,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,请帮助我,在我滚动时检测滚动视图上的图像 - (void)viewDidLoad { [super viewDidLoad]; NSArray *colors = [[NSArray alloc] initWithObjects:@"ip1.jpg", @"ip2.jpg", @"ip3.jpg", @"ip4.jpg", @"ip5.jpg", @"ip6.jpg", @"ip7.jpg", @"ip8.jpg", @"ip9.jpg", @"ip10.jpg",@"ip11.jpg"
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *colors = [[NSArray alloc] initWithObjects:@"ip1.jpg", @"ip2.jpg", @"ip3.jpg", @"ip4.jpg", @"ip5.jpg", @"ip6.jpg", @"ip7.jpg", @"ip8.jpg", @"ip9.jpg", @"ip10.jpg",@"ip11.jpg",@"ip12.jpg",@"ip13.jpg",@"ip14.jpg",@"ip15.jpg",@"ip16.jpg",@"ip17.jpg",@"ip18.jpg",@"ip19.jpg",@"ip20.jpg",@"ip21.jpg", nil];
NSMutableArray *imgArray = [[NSMutableArray alloc] init];
UIImageView *tempImageView;
for(NSString *name in colors) {
tempImageView = [[UIImageView alloc] init];
tempImageView.contentMode = UIViewContentModeScaleAspectFill;
tempImageView.image = [UIImage imageNamed:name];
[imgArray addObject:tempImageView];
}
CGSize pageSize = scrollView.frame.size; // scrollView is an IBOutlet for our UIScrollView
NSUInteger page = 0;
for(prevView in imgArray) {
[scrollView addSubview:prevView];
// This is the important line
prevView.frame = CGRectMake(pageSize.width * page++ + 30, 0, pageSize.width - 60, pageSize.height);
}
scrollView.contentSize = CGSizeMake(pageSize.width * [imgArray count], pageSize.height);
}
- (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.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;
}
}
请帮帮我。如果我使用slog显示CurrentPage,它会像“117892”一样显示我,我只需要一个NSLog,它会显示我的“颜色”NSArray中的当前图像。非常感谢尝试一下,您可以将“page”变量声明为全局变量,然后按代码所示进行传递
NSLog(@"%@",[colors objectAtIndex:page]);
试试这个,您可以将“page”变量声明为全局变量,然后按代码所示进行传递
NSLog(@"%@",[colors objectAtIndex:page]);
2012-12-08 04:22:57.761我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.804我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.812我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.826我的项目[2948:f803]ip1.jpg 2012-12-08:04:22:57.842我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.892我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.907我的项目[2948:f803]ip2.jpg为什么会这样(我如何修复它?假设页面计算正确,这在didcroll函数中应该很好-(void)ScrollViewDidcroll:(UIScrollView*)发送方{如果(!pageControlBeingUsed){//当上一页/下一页的50%以上可见时切换指示器CGFloat pageWidth=self.scrollView.frame.size.width;int page=floor((self.scrollView.contentOffset.x-pageWidth/2)/pageWidth)+1;self.pageControl.currentPage=page;NSLog(@“@”,[colors objectAtIndex:pageControl.currentPage]);}}我粘贴在“scrollViewDidScroll”中,objectAtIndex:page我尝试过,但也显示了重复的行,如NSLog.2012-12-08 04:22:57.761我的项目[2948:f803]我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.804我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.826我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.842我的项目[2948:f803]ip1.jpg 2012-12-08:04:22:57.867我的项目[2948:f803]ip1.jpg 2012-12-08 04:22:57.907我的项目[2948:f803]ip2.jpg为什么会这样显示?:(我如何修复它?假设页面计算正确,在didcroll函数中应该可以很好地运行-(void)scrollview didcroll:(UIScrollView*)sender{if(!pageControlBeingUsed){//当上一页/下一页的50%以上可见时,切换指示器CGFloat pageWidth=self.scrollView.frame.size.width;int page=floor((self.scrollView.contentOffset.x-pageWidth/2)/pageWidth)+1;self.pageControl.currentPage=page;NSLog(@“%@,[colors objectAtIndex:pageControl.currentPage]);}我粘贴了“scrollViewDidScroll”,objectAtIndex:我尝试过的页面,但也将重复的行显示为nslog。