首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS6.0及以上版本的ZBar条形码阅读器中隐藏信息按钮

如何在iOS6.0及以上版本的ZBar条形码阅读器中隐藏信息按钮
EN

Stack Overflow用户
提问于 2013-05-03 15:08:07
回答 8查看 3.4K关注 0票数 7

我在我的iOS应用程序中使用用于iOS 5.0和更高版本的ZBar条形码阅读器。

我已经在相机界面上使用以下代码隐藏了信息按钮。

代码语言:javascript
复制
UIView * infoButton= infoButton = [[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:2];
[infoButton setHidden:YES];

但不知何故,这段代码不适用于iOS6.0及更高版本。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-05-03 15:10:15

试试这段代码,这对我在iOS5.0和更高版本上很有效。

代码语言:javascript
复制
float currentVersion = 5.1;
float sysVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

UIView * infoButton;
if (sysVersion > currentVersion)
   infoButton = [[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:3];
else
   infoButton = [[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:2];
[infoButton setHidden:YES];

解释。iOS 6.0中的,如果您打印日志。

代码语言:javascript
复制
NSLog(@"%@",[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews]);

输出。

代码语言:javascript
复制
"<_UIToolbarBackground: 0xa0991c0; frame = (0 0; 320 54); autoresize = W; userInteractionEnabled = NO; layer = <CALayer: 0xa0795e0>>",
"<UIImageView: 0xa05d630; frame = (0 -3; 320 3); opaque = NO; autoresize = W+BM; userInteractionEnabled = NO; layer = <CALayer: 0xa05cfb0>>",
"<UIToolbarTextButton: 0xa0a8cc0; frame = (6 0; 60 54); opaque = NO; layer = <CALayer: 0xa0a9460>>",
"<UIButton: 0xa0960e0; frame = (290 18; 18 19); opaque = NO; layer = <CALayer: 0xa0615a0>>

在iOS 5.0中,如果打印日志。

代码语言:javascript
复制
NSLog(@"%@",[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews]);

输出。

代码语言:javascript
复制
"<_UIToolbarBackground: 0x8d9df90; frame = (0 0; 320 54); userInteractionEnabled = NO; layer = <CALayer: 0x8dc12c0>> - (null)",
"<UIToolbarTextButton: 0x8de5ae0; frame = (6 0; 60 54); opaque = NO; layer = <CALayer: 0x8de5db0>>",
"<UIButton: 0x8d1b110; frame = (290 18; 18 19); opaque = NO; layer = <CALayer: 0x8dba2b0>>"

因此,对于iOS 6.0和更高版本,它应该是索引3处的对象,因为有一个额外的视图UIImageView

票数 10
EN

Stack Overflow用户

发布于 2013-09-18 20:15:24

在最新版本的ZBar中,我用另一种方法解决了这个问题:

代码语言:javascript
复制
UIView * infoButton = [[[[[reader.view.subviews objectAtIndex:2] subviews] objectAtIndex:0] subviews] objectAtIndex:3];

[infoButton setHidden:YES];

数组键更改为2 3

票数 6
EN

Stack Overflow用户

发布于 2013-05-03 15:13:43

尝试以下代码:

代码语言:javascript
复制
UIView * infoButton = [[[[[reader.view.subviews objectAtIndex:1] subviews] objectAtIndex:0] subviews] objectAtIndex:3];

[infoButton setHidden:YES];
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16353491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档