2012-03-29 77 views
2

我在我的UIView上动态地绘制一些按钮。我根据一些数学计算来决定帧,并且我想在设备旋转时重画屏幕。我注册了我的代码轮换通知和didRotate:委托方法正常工作。旋转时如何重画屏幕? 一些更多的解释:如果旋转模式是肖像,我画两列按钮,我想绘制四列时,旋转到横向..按钮数据是动态的,来自我的HTTP服务器(按钮数等)旋转后重绘按钮

+0

你绘制你的按钮在视图的drawRect? (如果是这样,你可以在你的didRotate中调用setNeedsDisplay:然后检查drawRect中的方向。) – 2012-03-29 15:46:45

+0

@PhillipMills no我画了一个不同的方法。但我也可以在那里画画,不是吗? – ilhnctn 2012-03-29 15:49:19

回答

1

我建议您使用“willAnimateRotationToInterfaceOrientation”方法,以便在旋转设备时控制视图。 这是一些简单的代码,给你一个想法,使事情的工作:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration { 

// if you are in portrait mode 
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
{ 
    [yourOutletName setFrame:CGRectMake(255, 6, 25, 25)]; 
} 
// if you are in landscape mode 
else 
{ 
    [yourOutletName setFrame:CGRectMake(415, 6, 25, 25)]; 
} 
} 
+0

谢谢我试过这个,但下载数据块,我需要高效地调用bloxk。谢谢你的回答 – ilhnctn 2012-03-29 17:23:17