UIScrollView+2个效果。
研究了切换效果。自己写了2个:一个是用UIView淡入。。。一个是用CATransition(加入须QuartzCore.framework);
UIView 是子视图逐个淡入,但是效果不太好。可能时间设计不好,还是有其他更佳方法,还请各为不惜赐教。
CATransition 是随机交换各个对象。其实就是随机分配背景图,在根据背景图名称,给按钮设计Tag值。
让各位见笑了:
1 UI- (void)viewDidAppear:(BOOL)animated 2 3 { 4 //不要scrollView 请注释此句。 5 [(UIScrollView*)self.viewsetContentSize:CGSizeMake(320, 450)]; NSMutableArray * arr =[[NSMutableArrayalloc]init]; 6 float offset = 10; 7 int cellPadingY=10; 8 for (int i = 0; i < 9; i++) 9 { 10 CGRect rect = CGRectMake(offset, cellPadingY, 90, 90); 11 button = [[UIButton alloc]initWithFrame:rect]; 12 [buttonsetTitle:[[NSStringalloc]initWithFormat:@"btn%i",i] forState:UIControlStateNormal]; 13 [buttonsetTitleColor:[UIColorredColor] forState:UIControlStateNormal]; 14 [buttonaddTarget:selfaction:@selector(buttonOnClick:) forControlEvents:UIControlEventTouchUpInside]; 15 //button.backgroundColor = [UIColor clearColor]; 16 if (i%2==0) { 17 [buttonsetBackgroundImage:[UIImageimageNamed:@"2.jpg"]forState:UIControlStateNormal]; 18 } 19 else[buttonsetBackgroundImage:[UIImageimageNamed:@"1.jpg"]forState:UIControlStateNormal]; 20 button.alpha=0; 21 //为后面按钮的视图控制器做准备。。。。 22 button.tag = i+ 100; //加上100 以免跟其它tag一样 23 [self.view addSubview:button]; 24 [arr addObject:button]; 25 offset += 90 + 15; 26 if(offset>320){ 27 offset=10; 28 cellPadingY+=100; 29 } 30 } 31 32 NSMutableArray *arrTime=[[NSMutableArrayalloc]initWithObjects:@"1",@"2",@"2.5",@"3",@"3.5",@"4",@"4.5",@"5",@"5.5" ,nil]; 33 int m = [arrTime count]; 34 while(--m > 0) { 35 int n = rand()%(m+1); 36 [arrTime exchangeObjectAtIndex:m withObjectAtIndex:n]; 37 } 38 [UIViewbeginAnimations:@"moive"context:nil]; 39 for (int i=0; i<[arr count]; i++) { 40 [UIViewsetAnimationDuration:[[arrTime objectAtIndex:i] intValue]]; 41 [UIViewsetAnimationCurve:UIViewAnimationCurveEaseIn]; 42 //Make the animatable changes. 43 [[arr objectAtIndex:i]setAlpha:1]; 44 } 45 [UIViewcommitAnimations]; 46 [super viewDidAppear:animated]; 47 }
//-------------------------分割线---------------------
//CATransition // 请自行导入框架和头文件。 - (void)viewDidAppear:(BOOL)animated { NSMutableArray * arr =[[NSMutableArrayalloc]initWithObjects:@"2.jpg",@"1.jpg",@"4.jpg",@"3.jpg" ,nil]; int k = [arr count]; while(--k > 0) { int j = rand()%(k+1); [arr exchangeObjectAtIndex:k withObjectAtIndex:j]; } float offset = 10; int cellPadingY=10; for (int i = 0; i < [arr count]; i++) { CGRect rect = CGRectMake(offset, cellPadingY, 90, 90); button = [[UIButton alloc]initWithFrame:rect]; [buttonsetTitle:[[NSStringalloc]initWithFormat:@"btn%i",i] forState:UIControlStateNormal]; [buttonsetTitleColor:[UIColorredColor] forState:UIControlStateNormal]; [buttonaddTarget:selfaction:@selector(buttonOnClick:) forControlEvents:UIControlEventTouchUpInside]; //button.backgroundColor = [UIColor clearColor]; [buttonsetBackgroundImage:[UIImageimageNamed:[arr objectAtIndex:i] ]forState:UIControlStateNormal];//设置图片,取数组的第i张图片 [array objectAtIndex:i]; //为后面按钮的视图控制器做准备。。。。 NSString *objName=[[NSString alloc]initWithFormat:@"%@",[arr objectAtIndex:i]]; int tagValue=0; if([objName isEqualToString:@"1.jpg"]){tagValue=1;}; if([objName isEqualToString:@"2.jpg"]){tagValue=2;}; if([objName isEqualToString:@"3.jpg"]){tagValue=3;}; if([objName isEqualToString:@"4.jpg"]){tagValue=4;}; button.tag = tagValue + 100; //加上100 以免跟其它tag一样 [self.view addSubview:button]; //................................................................. offset += 90 + 15; if(offset>320){ offset=10; cellPadingY+=100; } } CATransition *transition = [CATransitionanimation]; transition.duration = 3; transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseOut]; transition.type = kCATransitionFade; transition.delegate = self; [self.view.layer addAnimation:transition forKey:nil]; [super viewDidAppear:animated]; }
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.