2013-04-22 18 views
0

我仍然是xcode的初學者。這裏是我的問題..我有一個滾動查看編程,在其中有一個uilabel內編程。我已將ssrollview放置在視圖控制器的邊緣,以便它不可見。我想動畫它滑動,並按下按鈕時出現在視圖控制器。我該怎麼做呢?它工作得很好,當我只動畫滾動視圖,但我不能動畫滾動視圖時,將uilabel放在裏面..這是我用過的。 以下塊來自按鈕操作。[注意:我已經使用quartzcore框架]如何動畫包含子視圖的視圖

-(IBAction)slideback:(id)sender 

{

viol=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 44.8, 320, 420)]; 
viol.contentSize=CGSizeMake(320, 900); 
viol.showsVerticalScrollIndicator=YES; 
viol.backgroundColor=[UIColor grayColor]; 
    viol.delegate=self; 



CATransition *animation = [CATransition animation]; 

[animation setDuration:1]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromRight]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 

[[viol layer] addAnimation:animation forKey:@"SlideView"]; 

l1=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 700)]; 
l1.backgroundColor=[UIColor redColor]; 
l1.font=[UIFont boldSystemFontOfSize:16]; 
[l1 setNumberOfLines:0]; 
[l1 sizeToFit]; 
[viol addSubview:l1]; 

[self.view addSubview:viol]; 

}

回答

0

的代碼是細。它會工作,一旦你的setText到的UILabel,你已經使用 [l1 sizeToFit];

sizeToFit調整大小,所以它圍繞它的子視圖移動視圖。因爲你沒有在文字的UILabel其寬度和高度將是(0,0)

-(IBAction)slideback:(id)sender { 
    viol=[[UIScrollView alloc] initWithFrame:CGRectMake(0, 44.8, 320, 420)]; 
viol.contentSize=CGSizeMake(320, 900); 
viol.showsVerticalScrollIndicator=YES; 
viol.backgroundColor=[UIColor grayColor]; 
viol.delegate=self; 

[self.view addSubview:viol]; 


l1=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 700)]; 
l1.backgroundColor=[UIColor redColor]; 
l1.font=[UIFont boldSystemFontOfSize:16]; 
[l1 setNumberOfLines:0]; 
// [l1 sizeToFit]; 
[viol addSubview:l1]; 

CATransition *animation = [CATransition animation]; 
[animation setDuration:2]; 
[animation setType:kCATransitionPush]; 
[animation setSubtype:kCATransitionFromRight]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]]; 


[[l1 layer] addAnimation:animation forKey:@"SlideView"]; 

} 
+1

更多信息http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/ UIView/UIView.html#// apple_ref/occ/instm/UIView/sizeToFit – 2013-04-23 11:54:13

+0

謝謝先生的作品。另一個疑問是,這個相同的程序可以用於動畫任何其他與子視圖uview?說一個包含按鈕的imageview? – 2013-04-24 11:40:37

+2

是的。你可以使用相同的程序來動畫任何UIView。你甚至可以使用UIView類的動畫方法。 只需通過以下鏈接 - http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html – 2013-04-25 06:32:14