我正在开发一个小型库来创建一个显示 iOS 应用程序可访问性信息的叠加层。
https://github.com/SeanMcTex/SMAccessibilityOverlay
我有一些很好的基础知识,但是当我创建我的 UILabel 时遇到了一个特殊的问题。当我处于纵向模式时,一切看起来都很好:
但是,当我以横向模式显示叠加层时,所有 UILabel 的文本都会旋转以匹配纵向:
这是创建覆盖窗口的代码:
self.overlayWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.overlayWindow.windowLevel = UIWindowLevelStatusBar;
self.overlayWindow.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.75];
self.overlayWindow.rootViewController = self;
这是创建每个 UILabel 的代码:
CGRect elementFrame = [view convertRect:view.bounds toView:view.window];
UILabel *overlayElement = [[UILabel alloc] initWithFrame:elementFrame];
overlayElement.adjustsFontSizeToFitWidth = YES;
overlayElement.minimumScaleFactor = 0.5;
overlayElement.backgroundColor = [UIColor redColor];
overlayElement.textAlignment = NSTextAlignmentCenter;
overlayElement.text = view.accessibilityLabel;
[self.overlayWindow addSubview:overlayElement];
最后,我在视图控制器中为 iOS 5 和 6 设置了所有旋转方法:
# pragma mark - AutoRotation
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return YES;
}
-(BOOL)shouldAutorotate {
return YES;
}
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll;
}
但是覆盖似乎从来没有正确调整方向——我可以在设备打开时旋转设备,或者在横向模式下打开一个新实例,同样缺乏结果。
我应该很高兴任何人都可以提供任何帮助。提前致谢!