Проблема тени UIView с ориентацией

У меня UiTableView within UiView. Я хочу установить corner radius & shadow в UIView. Я использую этот код, чтобы дать shadow with cornerи все работает нормально.

myView.backgroundColor = [UIColor clearColor];
[myView.layer setCornerRadius:10.0f];
[myView.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[myView.layer setBorderWidth:1.0f];
[myView.layer setShadowColor:[UIColor blackColor].CGColor];
[myView.layer setShadowOpacity:0.8];
[myView.layer setShadowRadius:3.0];
[myView.layer setShadowOffset:CGSizeMake(2.0, 2.0)];

// below line is for smooth scrolling
[myView.layer setShadowPath:[UIBezierPath bezierPathWithRect:myView.bounds].CGPath];`

с Portrait mode все работает нормально. Мое приложение поддерживается как Orientation, так и для этого мы используем Autoresizing property. Когда я меняю ориентацию Shadow is displaying according to frame of Portrait mode. Как это может справиться с обеими ориентациями.

Любая идея, как изменить setShadowPath в соответствии с ориентацией или привязкой?


person Hitarth    schedule 16.02.2013    source источник


Ответы (2)


Ротация iOS6 Попробуйте этот код и дайте мне знать, сработал ли он для вас

 - (BOOL)shouldAutorotate
{
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation))
    {
    self.view.backgroundColor = [UIColor redColor];
    }
else if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation))
   {
    self.view.backgroundColor = [UIColor blackColor];
   }

return YES;
} 
person iOSBee    schedule 16.02.2013

У меня есть собственное решение. у меня есть созданный метод - (void) viewWithEffects: (UIView*) myView {// copy the shadow code from the question}. Теперь я назвал этот метод - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{}.

Поэтому при изменении ориентации didRotateFromInterfaceOrientation вызов, и он даст Corner with Shadow effects. Тень будет установлена ​​​​в соответствии с вашим представлением в соответствии с Autoresize вашим представлением. если ваше приложение не поддерживает обе ориентации, то этого делать не нужно. Просто позвоните по номеру viewdidload or viewwillAppear. Надеюсь, это поможет .

person Hitarth    schedule 16.02.2013