У меня возникли проблемы с CGAffineTransformMakeScale
. Я показываю вид &, скрывая его, используя приведенный ниже код. Впервые он показывает & отлично отстраненный. Но после того, как он не появился снова. После того, как я распечатал журналы, на самом деле он вышел из экранных консорантов.CGAffineTransformMakeScale не работает должным образом
I treid применение сброса преобразование в увольнении, использование CGAffineTransformIdentity
, но все еще его не работает должным образом.
- (void) showWithAnimation
{
float mheight = customView.frame.size.height;
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
if(!keyWindow)
{
NSArray *windows = [UIApplication sharedApplication].windows;
if(windows.count > 0)
keyWindow = [windows lastObject];
keyWindow = [windows objectAtIndex:0];
}
UIView *containerView = [[keyWindow subviews] objectAtIndex:0];
CGRect frame = customView.frame;
frame.origin.y = -mheight;
customView.frame = frame;
NSLog(@"customView - %@", customView);
[containerView addSubview:customView];
customView.alpha = 0;
customView.transform = CGAffineTransformMakeScale(0.01, 0.01);
customView.center = CGPointMake((ScreenBounds().size.width/2) - 24, ScreenBounds().size.height/2);
NSLog(@"customView After applying transfrom - %@", customView);
[UIView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^{
customView.transform = CGAffineTransformMakeScale(1, 1);
customView.alpha = 1;
}
completion:^(BOOL finished){
self.isVisible = YES;
NSLog(@"customView Displayed .....");
NSLog(@"customView - %@", customView);
}];
}
- (void)dismissWithAnimation
{
[UIView animateWithDuration:0.3
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^{
customView.transform = CGAffineTransformMakeScale(0.01, 0.01);
customView.alpha = 0;
}
completion:^(BOOL finished)
{
self.isVisible = NO;
**//Edit: I tried applying CGAffineTransformIdentity at here**
[customView removeFromSuperview];
}];
}
ниже бревна,
--> 1st time logs
customView -> <UIView: 0x205a1e50; frame = (24 -150; 272 150); layer = <CALayer: 0x205a1eb0>>
customView After applying transfrom - <UIView: 0x205a1e50; frame = (134.64 283.25; 2.72 1.5); transform = [0.01, 0, 0, 0.01, 0, 0]; alpha = 0; layer = <CALayer: 0x205a1eb0>>
customView Displayed .....
customView - <UIView: 0x205a1e50; frame = (0 209; 272 150); layer = <CALayer: 0x205a1eb0>>
--> 2nd time logs
customView -> <UIView: 0x205a1e50; frame = (24 -204; 272 204); transform = [0.01, 0, 0, 0.01, 0, 0]; alpha = 0; animations = { transform=<CABasicAnimation: 0x2072c620>; opacity=<CABasicAnimation: 0x2072df20>; }; layer = <CALayer: 0x205a1eb0>>
customView After applying transfrom - <UIView: 0x205a1e50; frame = (3.03984e-06 182; 272 204); transform = [0.01, 0, 0, 0.01, 0, 0]; alpha = 0; animations = { transform=<CABasicAnimation: 0x2072c620>; opacity=<CABasicAnimation:
0x2072df20>; }; layer = <CALayer: 0x205a1eb0>>
customView Displayed .....
customView - <UIView: 0x205a1e50; frame = (-13464 -9916; 27200 20400); layer = <CALayer: 0x205a1eb0>>
Что происходит worng на здесь.
Когда/где вы применяете свойство CGAffineTransformIdentity для покоя матрицы преобразования? –
в dimissView, я вставил журнал относительно этого – JiteshW