11-20-2011, 12:25 PM
#1 (permalink )
Registered Member
Join Date: Jul 2009
Posts: 78
problem with setting new frame.
Hi All
I need set new frame before rotate view. but my view size does not change
here is how I do it .
Code:
[view setFrame:CGRectMake(0, 0, 50 , 100)];
[[AnimationHelper getInstance] changeCenterWithRotation:view center:retPosition rotation:(90.0) withAnimation:YES target:self finishSelector:nil];
-(void) changeCenterWithRotation:(UIView *)view center:(CGPoint)center rotation:(double)angle withAnimation:(BOOL)animation target:(id)target finishSelector:(SEL)finishSelector{
if(animation) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationDelegate:target];
[UIView setAnimationDidStopSelector:finishSelector];
}
view.center = center;
view.transform = CGAffineTransformMakeRotation(M_PI * angle / 180.0);
if(animation) {
[UIView commitAnimations];
}
}
Thanks.
11-20-2011, 12:44 PM
#2 (permalink )
Cocoa Junkie
Join Date: Dec 2008
Location: Northern Virginia
Posts: 6,003
Quote:
Originally Posted by
knut
Hi All
I need set new frame before rotate view. but my view size does not change
here is how I do it .
Code:
[view setFrame:CGRectMake(0, 0, 50 , 100)];
[[AnimationHelper getInstance] changeCenterWithRotation:view center:retPosition rotation:(90.0) withAnimation:YES target:self finishSelector:nil];
-(void) changeCenterWithRotation:(UIView *)view center:(CGPoint)center rotation:(double)angle withAnimation:(BOOL)animation target:(id)target finishSelector:(SEL)finishSelector{
if(animation) {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:animationDuration];
[UIView setAnimationDelegate:target];
[UIView setAnimationDidStopSelector:finishSelector];
}
view.center = center;
view.transform = CGAffineTransformMakeRotation(M_PI * angle / 180.0);
if(animation) {
[UIView commitAnimations];
}
}
Thanks.
It's a little hard to tell what's going wrong without knowing more about your project.
One thing to look into:
The docs on UIView state that the frame property is undefined if the transformation matrix is not the identity matrix:
Quote:
Warning: If the transform property is not the identity transform, the value of this property [frame] is undefined and therefore should be ignored.
If you want your view to shrink, you could use the transformation matrix to reduce it's scale as well as rotate it.
11-20-2011, 01:19 PM
#3 (permalink )
Registered Member
Join Date: Jul 2009
Posts: 78
Thanks for replay.
my view is card. I am writing game. so I need rotate card and after rotation I need make card smaller i.e set new frame to my card view.
Thanks.
11-20-2011, 03:11 PM
#4 (permalink )
Cocoa Junkie
Join Date: Dec 2008
Location: Northern Virginia
Posts: 6,003
Quote:
Originally Posted by
knut
Thanks for replay.
my view is card. I am writing game. so I need rotate card and after rotation I need make card smaller i.e set new frame to my card view.
Thanks.
So apply a scale factor to the card view's transform once the animation completes.
As I said in my previous post, you can't use the frame property if you apply a transform to a view.
Thread Tools
Display Modes
Linear Mode
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
» Advertisements
» Online Users: 383
18 members and 365 guests
7twenty7 , Apptronics RBC , baja_yu , chiataytuday , Clouds , dedeys78 , dre , Duncan C , e2applets , iekei , ipodphone , jeroenkeij , leostc , matador1978 , mbadegree , QuantumDoja , Retouchable , usernametaken
Most users ever online was 1,387, 04-10-2012 at 04:21 AM.
» Stats
Members: 175,676
Threads: 94,125
Posts: 402,910
Top Poster: BrianSlick (7,990)
Welcome to our newest member, jleannex55