1

無限にスクロールする画像を追加したいのですが、画像のスクロールに終わりはありません。

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];   
}
4

2 に答える 2

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);
}

そして結果を確認

于 2012-06-08T05:06:32.330 に答える
0

Applesのサンプルコードを確認できますPhotoScroller。 それは彼らがSession
で紹介したコードです。登録済みのApple開発者であれば、このビデオ(および対応するPDF)を無料で視聴できます。WWDC 11104 - Advanced ScrollView Techniques

于 2012-06-08T07:01:43.607 に答える