【发布时间】:2012-03-23 19:58:38
【问题描述】:
我正在开发这个只支持横向的 cocos2D 应用程序。这个 UIView 是垂直显示的,就好像设备是纵向的一样。我有两个问题:
- 为什么是垂直显示?
- 是否可以在不手动旋转视图的情况下使其正常显示?
这是视图控制器中的代码:
// this method is called from init
-(void) addLoadingView {
CGSize size = [[CCDirector sharedDirector] winSize];
_blockerView = [[[UIView alloc]
initWithFrame: CGRectMake(0, 0, 280, 60)] autorelease];
_blockerView.backgroundColor = [UIColor colorWithWhite: 0.0 alpha: 0.8];
_blockerView.center = CGPointMake(size.width/2, size.height/2);
_blockerView.alpha = 0.0;
_blockerView.clipsToBounds = YES;
if ([_blockerView.layer respondsToSelector: @selector(setCornerRadius:)])
[(id) _blockerView.layer setCornerRadius: 10];
_blockerLabel = [[[UILabel alloc] initWithFrame: CGRectMake(0, 5, _blockerView.bounds.size.width, 15)] autorelease];
_blockerLabel.text = NSLocalizedString(@"Please Wait...", nil);
_blockerLabel.backgroundColor = [UIColor clearColor];
_blockerLabel.textColor = [UIColor whiteColor];
_blockerLabel.textAlignment = UITextAlignmentCenter;
_blockerLabel.font = [UIFont boldSystemFontOfSize: 15];
[_blockerView addSubview: _blockerLabel];
UIActivityIndicatorView *spinner = [[[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle: UIActivityIndicatorViewStyleWhite] autorelease];
spinner.center = CGPointMake(_blockerView.bounds.size.width / 2, _blockerView.bounds.size.height / 2 + 10);
[_blockerView addSubview: spinner];
[self.view addSubview: _blockerView];
[spinner startAnimating];
}
-(void) showLoadingGraphics:(NSString*)textInView{
_blockerView.alpha = 1.0;
_blockerLabel.text = NSLocalizedString(textInView, nil);
}
更新
我发现如果将它添加到openGLView中就可以了。
[[[CCDirector sharedDirector] openGLView] addSubview: _blockerView];
而不是
[self.view addSubview: _blockerView];
作品
我怀疑它当前所在的视图以某种方式旋转。
【问题讨论】:
-
截图? _blockerView 是您正在谈论的视图吗?快速评论 - 如果您已经使用某个框架对其进行了初始化,则无需设置 _blockerView 的中心。
-
是的,_blockerView 是旋转的。这段代码不是我写的。我只是在这里工作,哈哈。不过感谢您的提示。
标签: objective-c ios cocoa-touch uiview cocos2d-iphone