问题描述很简短,但我想我不需要多说。当我加载自定义电影播放器的 .xib
时,UIButton/UIBarButtonItem 控件设置为我的 File's Owner
对象的 ivars/properties,并且它们还设置了它们的操作/选择器各种局部方法。该函数从未进入(gdb 断点未命中)。
我已验证 setView:
和 set...Button:
正在被调用(尚未调查它们是否为 nil)。我还尝试在 UI 初始化时手动调用 addTarget:action:forControlEvents:
/setAction:
,但无济于事。
这里也有额外的奇怪之处:按钮实际上突出显示,然后保持突出显示。因此它们从 UIControlStateNormal
过渡到 UIControlStateHighlighted
(/UIControlStateSelected
,取决于单击的滚动方式),但在 UIControlEventTouchUpInside
否则会触发按钮的操作,按钮似乎仍处于突出显示/选中状态。
请注意,同一 .xib
中的以下控件可以正常工作:
MPVolumeView
(Apple 子类 UISlider
)UISlider
(为 UIControlEvent
s ValueChanged
、TouchDown
、TouchUpInside
设置选择器code>、TouchUpOutside
、TouchCancel
,所有这些似乎都还在工作)UIGestureRecognizer
s(即使是按钮上的单击按钮目前也可以使用)这曾经有效,那么从那时起 .xib
中发生了什么变化?嗯:
layerClass
(因此顶级 View 也是子类 UIView
)。这是为了解决一些电影加载问题/视觉滞后问题。这实际上是所有的改变,至少我能想到的.. 我也尝试过移除并重新连接 IB 中的 socket 。也欢迎不一定是解决方案的想法!
编辑:好的,下面是它在哪些设备中工作/损坏的概述。模拟器没有测试,因为我有 .a
库,其中只有 armv6
/armv7
编译的架构。
05.15.04
,未插入 SIM:按钮未触发07.11.01
,SIM 已插入:按钮正在触发我已经尝试从 iOS 4.3 (Xcode 4.0.2 4A2002a) 和 iOS 5.0b4 (Xcode 4.2 4C139) 部署到设备 1 和 2,这两种情况下的结果相同(手机不工作,pad 工作)。我还尝试从设备 1 和 2 上完全卸载应用程序并进行干净的构建,重新安装时的结果相同。我仅从 Xcode 4.2 部署到设备 3,仅从 Xcode 4.0.2 部署到设备 4。
只有相关性我可以看到没有细胞信号 = 不工作,但这是荒谬的。为了以防万一,我关闭了设备 2 上的手机数据,但它仍然可以通过 WiFi 正常工作。
我遇到了类似的问题。原来是因为我的按钮不在 View 中。
我的应用处于横向模式,但 UIViewController 的 View 在某些设备和/或 iOS 版本上旋转时没有自动调整大小。
为了可视化问题,我在初始化 View 和按钮的地方添加了这个:
self.view.backgroundColor = [UIColor colorWithRed:1.0f green:0.0f blue:1.0f alpha:0.4f];
启用此选项后,我可以看到在某些情况下没有响应按下的按钮位于 UIViewController 的 View 之外(因此没有收到事件)。
为了解决这个问题,我只是将它添加到我初始化 View 和按钮的位置:
// Be sure to set the frame for this view controller to be fullscreen
CGSize winSize = [UIScreen mainScreen].bounds.size;
// Note that we switched height and width...this is because
// these values are always for portrait mode
self.view.frame = CGRectMake(0.0f, 0.0f, winSize.height, winSize.width);
请务必特别注意 [UIScreen mainScreen].bounds.size 将始终返回纵向值,如果您在横向模式下操作,则必须反转它们。
添加后,我可以看到我的 View 覆盖了全屏,并且按钮开始响应所有设备和 iOS 版本上的事件/按下。
如果您使用的是 cocos2d,您可以使用它,而不必担心手动管理方向:
CGSize winSize = [[CCDirector sharedDirector] winSize];
关于ios - 在 XIB 中设置但未触发的 UIButton 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827253/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |