2

私は持ってい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オリエンテーションまたはバウンドに従って変更する方法はありますか?

4

2 に答える 2

0

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;
} 
于 2013-02-16T10:37:09.300 に答える
0

私は自分自身の解決策を見つけました。1つのメソッドを作成しました- (void) viewWithEffects: (UIView*) myView {// copy the shadow code from the question}。今、私はこのメソッドをに呼び出しました- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation{}

したがって、向きを変更する didRotateFromInterfaceOrientationCorner with Shadow effects.、ビューに応じてシャドウがビューに設定されますAutoresize。アプリが両方の方向でサポートされていない場合は、これを行う必要はありません。に電話するだけviewdidload or viewwillAppearです。私はそれが役立つことを願っています。

于 2013-02-16T12:47:36.143 に答える