【问题标题】:how to do infinite scrolling images using cocoa touch如何使用可可触摸进行无限滚动图像
【发布时间】:2013-06-26 02:39:18
【问题描述】:

我想添加无限滚动图片,图片滚动没有尽头:

const CGFloat kScrollObjHeight  = 200.0;
const CGFloat kScrollObjWidth   = 320.0;
const NSUInteger kNumImages     = 17;

- (void)layoutScrollImages
{
    UIImageView *view = nil;
    NSArray *subviews = [scrollview1 subviews];
    CGFloat curXLoc = 0;

    for (view in subviews)
    {
        if ([view isKindOfClass:[UIImageView class]] && view.tag > 0)
        {
            CGRect frame = view.frame;
            frame.origin = CGPointMake(curXLoc, 0);
            view.frame = frame;
            curXLoc += (kScrollObjWidth);
        }
    }

    [scrollview1 setContentSize:CGSizeMake((kNumImages * kScrollObjWidth), [scrollview1 bounds].size.height)];
}

-(void)viewDidLoad
{
    self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
    [scrollview1 setBackgroundColor:[UIColor blackColor]];
    [scrollview1 setCanCancelContentTouches:NO];
    scrollview1.indicatorStyle = UIScrollViewIndicatorStyleWhite;
    scrollview1.clipsToBounds = YES;
    scrollview1.scrollEnabled = YES;
    scrollview1.pagingEnabled = YES;

    for(int i=0;i< kNumImages;i++)
    {
        NSString *imgName=[[NSString alloc] initWithFormat:@"head%d.png",i];
        UIImage *img=[UIImage imageNamed:imgName];
        UIImageView *imageView=[[UIImageView alloc] initWithImage:img];

        [imageView setFrame:CGRectMake(i* kScrollObjWidth, 0, kScrollObjWidth,kScrollObjHeight)];
        [scrollview1 addSubview:imageView];
        [imageView release];
        [imgName release];
    }

    scrollview1.contentSize= CGSizeMake(kScrollObjWidth* kNumImages, kScrollObjHeight);

    [self layoutScrollImages];

    [super viewDidLoad];   
}

【问题讨论】:

  • 你想让这些行做什么 NSString *imgName=[[NSString alloc] initWithFormat:@"head1.png",i];和 [self layoutScrollImages]
  • 对不起妈妈这是我最后的疑问,你明白这个问题吗?如果我们只使用一个图像,它会重复。这里我使用 5 个不同的图像,例如 [(a,b,c,d,e),这希望成为无限图像,如 (a,b,c,d,e,a ,b,c,d,e,....] 这对我来说只是不重复..请帮助我。

标签: iphone ios cocoa-touch infinite-scroll


【解决方案1】:

只需使用 .h 文件创建一个简单的新项目

#import <UIKit/UIKit.h>

@interface scrollableImageViewController : UIViewController {

IBOutlet UIScrollView *sview;

}

@end

和.m文件用这个方法

- (void)viewDidLoad {
[super viewDidLoad];

for(int i=0;i<10;i++)
{
    NSString *name=[[NSString alloc] initWithFormat:@"images%d.png",i];
    NSLog(@"%@",name);
    [name    release];
    UIImage *img=[UIImage imageNamed:@"img.png"];
    UIImageView *imageView=[[UIImageView alloc] initWithImage:img];
    [imageView setFrame:CGRectMake(i*57, 0, 57, 57)];
    [sview addSubview:imageView];

    [imageView release];
}
sview.contentSize= CGSizeMake(57*10, 57);
}

并检查结果

【讨论】:

    【解决方案2】:

    您可以查看 Apple 示例代码 PhotoScroller
    这是他们在WWDC 11 介绍的代码 在会话104 - Advanced ScrollView Techniques。如果您是注册的 Apple 开发人员,您可以免费观看此视频(和相应的 PDF)。

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多