我还没有花足够的时间来查看TTLauncherView背后的代码,但在横向模式下它似乎在右侧有一个空白区域。我想重写发射器,但是任何人都有更优雅的解决方案吗?我想删除空白区域,而是将项目重新组织到该空白区域。
答案 0 :(得分:1)
我认为你可以做到这一点比这更容易......我对这个工具包很陌生,但这似乎适用于我的应用程序:
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self.view setBackgroundColor:[UIColor clearColor]];
}
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[_launcherView setFrame:self.view.bounds];
}
编辑: 抱歉编辑,我只是不断寻找更好的方法来做到这一点。我们可以覆盖动画方法,该方法自动动画我们的TTLauncherItems的旋转。我已经改变了视图的alpha值来隐藏图标旋转的突然性:
-(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[_launcherView setFrame:self.view.bounds];
//[self.view setAlpha:0.4];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.1];
[self.view setAlpha:1];
[UIView commitAnimations];
}
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
[self.view setBackgroundColor:[UIColor clearColor]];
[self.view setAlpha:1];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.1];
[self.view setAlpha:0.7];
[UIView commitAnimations];
}
答案 1 :(得分:0)
这可以更容易地完成。我喜欢没有willRotate方法的解决方案:
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[UIView beginAnimations:nil context:NULL];
[_launcherView setFrame:self.view.bounds];
[UIView commitAnimations];
}
它为我做好了工作!