1

こんにちは、ビューのリストを表示するためにアプリに iCarousel を含めました。私は今問題に直面しています。

  1. 表示項目数を 3 に設定すると、3 の倍数のインデックス ビューが表示されます
  2. 設定していない場合は、icarousel ビューの最初と最後のインデックスが表示されます。

iCarousel でビューを再利用するという概念について、私はとても混乱しています。

これが私のコードです

-(void)viewWillAppear:(BOOL)animated
{



ViewArray=[[NSMutableArray alloc]init];
for (int i=0; i<26; i++) {
 [ViewArray addObject:views];
    [carousel1 reloadData];

}
NSLog(@"%@",ViewArray);
}


- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
{
//return the total number of items in the carousel
return 26;
}


- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
 UIView *sub=nil;
 if (view==nil) {


view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 900, 387)];

    capitalBG.frame=CGRectMake(28, 29, 221, 329);
    capitalBG.tag=11;
    [view addSubview:capitalBG];

    capitalImage.frame=CGRectMake(28, 29, 221, 329);
           [view addSubview:capitalImage];
    capitalImage.tag=12;
    smallBG.frame=CGRectMake(678, 111, 198, 166);
           [view addSubview:smallBG];
    smallBG.tag=21;
    smallImage.frame=CGRectMake(678, 111, 198, 166);
           [view addSubview:smallImage];
    smallImage.tag=22;

}

else
{

}

capitalBG.frame=CGRectMake(28, 29, 221, 329);
[capitalBG setImage:[UIImage imageNamed:@""]];
[view addSubview:capitalBG];

capitalImage.frame=CGRectMake(28, 29, 221, 329);
[capitalImage setImage:[[[Global ImageCollection]objectForKey:@"CapitalWrite"]objectAtIndex:index]];
[view addSubview:capitalImage];

smallBG.frame=CGRectMake(678, 111, 198, 166);
[smallBG setImage:[UIImage imageNamed:@""]];
[view addSubview:smallBG];

smallImage.frame=CGRectMake(678, 111, 198, 166);
[smallImage setImage:[[[Global ImageCollection]objectForKey:@"SmallWrite"]objectAtIndex:index]];
[view addSubview:smallImage];
 return view;
}


- (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value
{
if (option == iCarouselOptionSpacing)
{
    return value * 1.1f;
}

if (option==iCarouselOptionVisibleItems) {
    return 3;
}
return value;
}
4

1 に答える 1

2

私はあなたが明らかに求めたものを手に入れていません。画像を表示するには、I-carousalの実装のコードを確認してください。

     - (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
  {
//add all your images to an array,and use that array for count. 

return [items count];
 }



     - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index     reusingView:(UIView *)view
  {
    //create new view if no view is available for recycling
if (view == nil)
{
    view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 215.0f, 155.0f)];
    ((UIImageView *)view).image = [UIImage imageNamed:[self.items objectAtIndex:index ]];

    view.contentMode = UIViewContentModeCenter;
}

return view;

}

   - (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option          withDefault:(CGFloat)value
   {
//customize carousel display

        return value+0.1;
     }
于 2013-02-19T11:11:30.783 に答える