我开发了一个使用 UIPickerView 和 UIToolbar 的字体选择,它们都是在触摸 UIButton 时添加的。
但它们只是一种流行,看起来很邋遢。
有没有办法让他们动起来?
这是添加它们的方法(在单击按钮时调用):
-(void)showPicker
{
[self.view addSubview:_fontPicker];
[self.view addSubview:pickerTB];
}
我开发了一个使用 UIPickerView 和 UIToolbar 的字体选择,它们都是在触摸 UIButton 时添加的。
但它们只是一种流行,看起来很邋遢。
有没有办法让他们动起来?
这是添加它们的方法(在单击按钮时调用):
-(void)showPicker
{
[self.view addSubview:_fontPicker];
[self.view addSubview:pickerTB];
}
您可以通过多种方式为它们设置动画,但最简单的方法可能是让它们淡入。
淡入
[someView setAlpha:0]
[self.view addSubview:someView];
[UIView beginAnimations:@"FadeIn" context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationBeginsFromCurrentState:YES];
[someView setAlpha:1];
[UIView commitAnimations];
消退
float fadeDuration = 0.5;
[UIView beginAnimations:@"FadeOut" context:nil];
[UIView setAnimationDuration:fadeDuration ];
[UIView setAnimationBeginsFromCurrentState:YES];
[someView setAlpha:0];
[UIView setAnimationDidStopSelector:@selector(removeView)];
[UIView commitAnimations];
-(void) removeView {
[someView removeFromSuperview];
}
就这么简单。
取决于您要使用的动画类型。例如,这看起来像溶解。反正看看UIView animateWithDuration...
pickerTB.alpha = _fontPicker.alpha = 0;
[self.view addSubview:_fontPicker];
[self.view addSubview:pickerTB];
[UIView animateWithDuration:1 animations:^{_fontPicker.alpha = 1; pickerTB.alpha = 1}];
您可以使用变换或更改帧原点来使视图也从屏幕外的位置飞入。在这种情况下,在动画块内,指定新的屏幕位置。您可以通过两种方式执行此操作,使用更新的原点更改框架或应用CGAffineTransformMakeTranslation(dx,dy)
您需要添加具有帧值的子视图,该帧值是您希望动画开始的位置(屏幕外?),然后更改动画块内的帧值。帧将在持续时间内发生变化,从而产生运动的外观。该视图必须已经是一个子视图 - 我不认为添加子视图是您可以制作动画的东西,这没有任何意义。
-(无效)显示选择器{
[self.view addSubview: _fontPicker];
_fontPicker.frame = CGRectMake(0, 0, 120, 40);// somewhere offscreen, in the direction you want it to appear from
[UIView animateWithDuration:10.0
animations:^{
geopointView.frame = // its final location
}];
}
最初像这样设置您的选择器视图框架和工具栏框架..
-(void)viewDidLoad
{
[super viewDidLoad];
pickerTB.frame = CGRectMake(0,568,320,44);
fontPicker.frame = CGRectMake(0, 568, 320, 216);
}
-(void)showPicker
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.30];
if(isiPhone5)
{
pickerTB.frame = CGRectMake(0,288,320,44);
fontPicker.frame = CGRectMake(0, 332, 320, 216);
}else{
pickerTB.frame = CGRectMake(0,200,320,44);
fontPicker.frame = CGRectMake(0,244, 320, 216);
}
[UIView commitAnimations];
}