如何在不同的uibutton操作中将不同的图像数组传递给iCarousel。如何用不同的图像重新加载iCarousel?
提前谢谢。
发布于 2013-05-16 05:41:59
有一种方法- (void)reloadData;和UITableView一样
这是GitHub/iCarousel的描述,
这将从dataSource重新加载所有旋转木马视图,并刷新旋转木马显示。
发布于 2013-05-16 05:36:51
用iCarouselButtonsDemo项目在iCarousel上试一试
iCarouselExampleViewController.h文件中的
#import <UIKit/UIKit.h>
#import "iCarousel.h"
@interface iCarouselExampleViewController : UIViewController <iCarouselDataSource, iCarouselDelegate> {
NSMutableArray *arrImages;
}
@property (nonatomic, retain) IBOutlet iCarousel *carousel;
@property (nonatomic, retain) NSMutableArray *arrImages;
@endiCarouselExampleViewController.m文件中的
#import "iCarouselExampleViewController.h"
@implementation iCarouselExampleViewController
@synthesize carousel,arrImages;
- (void)dealloc {
carousel.delegate = nil;
carousel.dataSource = nil;
[carousel release];
[arrImages release];
[super dealloc];
}
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
arrImages = [[NSMutableArray alloc] init];
for (int i = 0; i < 100; i++) {
[arrImages addObject:[NSString stringWithFormat:@"Image%d.png",i]];
}
//configure carousel
carousel.type = iCarouselTypeCoverFlow2;
}
- (void)viewDidUnload {
[super viewDidUnload];
self.carousel = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
#pragma mark -
#pragma mark iCarousel methods
- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel {
//generate 100 buttons
//normally we'd use a backing array
//as shown in the basic iOS example
//but for this example we haven't bothered
return 100;
}
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view {
UIButton *button = (UIButton *)view;
if (button == nil) {
//no button available to recycle, so create new one
UIImage *image = [UIImage imageNamed:@"page.png"];
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setBackgroundImage:image forState:UIControlStateNormal];
button.titleLabel.font = [button.titleLabel.font fontWithSize:50];
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
}
//set button label
[button setTitle:[NSString stringWithFormat:@"%i", index] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:[arrImages objectAtIndex:index]] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:[arrImages objectAtIndex:index]] forState:UIControlStateNormal];
return button;
}
#pragma mark -
#pragma mark Button tap event
- (void)buttonTapped:(UIButton *)sender {
//get item index for button
NSInteger index = [carousel indexOfItemViewOrSubview:sender];
[[[[UIAlertView alloc] initWithTitle:@"Button Tapped"
message:[NSString stringWithFormat:@"You tapped button number %i", index]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease] show];
}
@endhttps://stackoverflow.com/questions/16579490
复制相似问题