ZBarReaderViewController读卡器视图更改iOS6&;的方向;即使通过_reader.supportedOrientationsMask对其进行了限制,iOS7也仍然存在
我使用ZBARDK进行二维码扫描功能。我只想在肖像模式下使用它。根据文档,我使用以下代码行进行设置: _reader.supportedOrientationMask=zBaroOrientationMask(UIInterfaceOrientationGrait) 正如预期的那样,它可以很好地与iOS 5配合使用,但使用相同的代码,该视图会改变iOS 6和iOS 7的方向。supportedOrientationsMask是否仅适用于ZBarReaderViewController读卡器视图更改iOS6&;的方向;即使通过_reader.supportedOrientationsMask对其进行了限制,iOS7也仍然存在,ios,iphone,objective-c,uiinterfaceorientation,zbar-sdk,Ios,Iphone,Objective C,Uiinterfaceorientation,Zbar Sdk,我使用ZBARDK进行二维码扫描功能。我只想在肖像模式下使用它。根据文档,我使用以下代码行进行设置: _reader.supportedOrientationMask=zBaroOrientationMask(UIInterfaceOrientationGrait) 正如预期的那样,它可以很好地与iOS 5配合使用,但使用相同的代码,该视图会改变iOS 6和iOS 7的方向。supportedOrientationsMask是否仅适用于
if(_reader) // first check `_reader` is created or not?
{
[_reader.readerView stop]; // then stop continue scanning stream of "self.ZBarReaderVC"
for(UIView *subViews in _reader.view.subviews) // remove all subviews
[subViews removeFromSuperview];
[_reader.view removeFromSuperview];
_reader.view = nil;
}
_reader = [ZBarReaderViewController new];
_reader.readerDelegate = self;
_reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);
ZBarImageScanner *scanner = _reader.scanner;
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
[_reader.view setFrame:CGRectMake(0, _topbar.frame.size.height, self.view.bounds.size.width, self.view.bounds.size.height-_topbar.frame.size.height)];
_reader.cameraOverlayView = [self CommomOverlay];
_reader.showsZBarControls=NO;
// present and release the controller
[self presentModalViewController: _reader
animated: NO];
如果需要更多详细信息,请告诉我。我喜欢这样做,并且正在为所有iOS版本工作: 步骤1:设置设备方向 步骤2:将此代码添加到实现(.m)文件中
终于找到了解决办法。 问题是这样的: ZbarViewController*读卡器是从我当前的视图控制器提供的,它的纵向支持属性不知何故无法工作
_reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);
为了解决这个问题,我创建了TBZbarViewController这个新类,它继承了ZbarViewController类,并放置了下面的方法
-(BOOL)shouldAutorotate{
return NO;
}
然后我使用TBZbarViewController*阅读器从我的控制器中演示,解决了这个问题,并且它只在需要时在纵向模式下工作
谢谢。嘿,它在肖像模式下工作吗?横向模式有什么问题?我不希望屏幕在横向模式下旋转,只保留纵向。对于iOS 5,但我更改了设备方向,它只保留纵向。只是iOS6和iOS7允许摄像头屏幕(_reader显示在view controller上)改变横向方向,这是个问题,不应该发生。谢谢Ajay,但这里的问题是我的应用程序是通用应用程序,我已经做了与上面提到的相同的事情。因此,所有视图控制器都可以在纵向模式下正常工作,但当我从视图控制器中呈现ZBarReaderViewController*读卡器时,相机读卡器打开,这会改变方向,我只想将其阻止为纵向。我没有权限查看ZBarReaderViewController.m文件以进行任何更改。但奇怪的是,底线不起作用_reader.supportedOrientationMask=zBaroOrientationMask(UIInterfaceOrientationGrait);对此有什么见解吗?
-(BOOL)shouldAutorotate{
return NO;