0

助けてください。スクロールビューで画像を表示するこのコードがあります。:

- (void)viewDidLoad
{
    [super viewDidLoad];


    NSArray *imgNames = [[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];


    // Setup the array of UIImageViews
    NSMutableArray *imgArray = [[NSMutableArray alloc] init];
    UIImageView *tempImageView;
    for(NSString *name in imgNames) {
        tempImageView = [[UIImageView alloc] init];
        tempImageView.contentMode = UIViewContentModeScaleAspectFill;
        tempImageView.image = [UIImage imageNamed:name];
        [imgArray addObject:tempImageView];

    }
 CGSize pageSize = scrollViewBack.frame.size; // scrollView is an IBOutlet for our UIScrollView
    NSUInteger page = 0;
    for(UIView *view in imgArray) {
        [scrollViewBack addSubview:view];

        // This is the important line
        view.frame = CGRectMake(pageSize.width * page++ + 40, 0, pageSize.width - 80,  pageSize.height);
 }   



    scrollViewBack.contentSize = CGSizeMake(pageSize.width * [imgArray count], pageSize.height);

}

ここで、スクロールするときに画像名を表示するUILabelが必要です。助けてください、私はそれを実装することはできません。どうもありがとう。

4

2 に答える 2

1

あなたのループでは、このようなことができます。アップルのドキュメントを読んでください。ラベルの作り方はグーグルで検索してください。試してみれば、このことを学ぶのは難しくありません。

for(NSString *name in imgNames) {
    // ....

    UILabel *label = [[UILabel alloc] initWithFrame:WHEREYOUWANTIT];
    [label setText:name];
}
于 2012-12-07T14:09:29.477 に答える
1

2 番目のループでは、およびforのオブジェクトのインデックスにアクセスできるので、これを試してください。imgArrayimgNames

int idx = [imgArray indexOfObject:view];
NSString *strName = [imgNames objectAtIndex:idx];
//create the label
label.text=strName;
//add the label in the scrollView

新しい画像が表示されたときにラベルを表示したい場合は、2 つの配列を iVar として保持し、UIPageControl を使用て、現在のスクロールビューのページを追跡します。(サンプルコード)。

于 2012-12-07T14:24:20.950 に答える