4

我们看到这个奇怪的错误,我在网上还找不到任何东西。只有一篇没有答案或解决方法的帖子: https ://groups.google.com/forum/#!topic/phonegap/7pRzASZpnQc

我们用 Angular、Underscore、angular-route、angular-touch、angular-animate、CSS Flex 布局和 Cordova 3.1.0 构建了一个应用程序,在 Android 4.0++ 上,一切都像魅力一样。

当我们将 iOS 转移到 Mac 上并添加 iOS 平台时,我们在 XCode5 中编译,当我们单击或尝试通过此调用在 6.1 和 7 的 iPhone 模拟器中滚动时,应用程序在某些 HTML 视图(不是全部)上崩溃堆:

2013-11-12 17:22:49.193 App[7034:907] -[__NSCFSet opacity]: unrecognized selector sent to instance 0x98e8660
2013-11-12 17:22:49.194 App[7034:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFSet opacity]: unrecognized selector sent to instance 0x98e8660'
*** First throw call stack:
(0x119012 0x1f44e7e 0x1a44bd 0x108bbc 0x10894e 0x39e458 0x3c7d7d 0x3b2574 0x3b6a97 0x61f85a 0x61e99b 0x6200df 0x622d2d 0x622cac 0x61aa28 0x387972 0x387e53 0x365d4a 0x357698 0x30b1df9 0x30b1ad0 0x8ebf5 0x8e962 0xbfbb6 0xbef44 0xbee1b 0x30b07e3 0x30b0668 0x354ffc 0x2308c 0x2301d)
libc++abi.dylib: terminate called throwing an exception

发生这种情况的视图基本上只是普通的 HTML 和 CSS AngularJS 视图,其中一些数据使用 $scope 在控制器中设置。

有没有人见过这样的事情?Alpha、Opacity 或 CSS 等是否有任何问题?

在 iOS 6.1 上,两个视图之一正在运行,而在 iOS 7 上,两个视图正在使应用程序崩溃。

来电:

UIView (Rendering) alpha)
UIScrollView _adjustScrollerInicatorsShowingThem:
UIScrollView _updatePanGesture
UIScrollView handlePan
UIGestureRecognizerSendActions
UIGestureRecognizer _updateGestureWithEvent:buttonEvent
UIGestureRecognizer _delayedUpdateGesture
.....
....
UIWindows sendEvent
UIApplicationEvenQueue
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM ....
...
....
......
........
GSEventRun
UIApplicationMain
main
4

2 回答 2

3

难以置信,但这是真的,这是一个 CSS 问题。即使使用 iOS7,CSS 计算和解析也是错误的,并且会导致浏览器和 WebView 崩溃 - 在所有 Android 手机上,这完全可以正常工作!:

HTML:

<div class="financial profileBlock">

我们有以下 CSS:

#profileContainer .profileBlock table td {
    border-bottom: 1px solid #d2d2d2;
}

#profileContainer .profileBlock table {
    font-size: 1.1em;
    border-top: 1px solid #d2d2d2;
    margin-top: 10px;
}

当单击/触摸/tabing 或尝试滚动时,这会导致 WebView 崩溃,从而导致整个混合应用程序崩溃。当使用 URL 访问 HTML 页面时,它还会使 Safari 崩溃!

当我们将 CSS 重构为以下内容并且它起作用时:

#profileContainer table.profileTable {
    margin-top: 10px;
    font-size: 0.9em;

    td {
        border-bottom: 1px solid #d2d2d2;

        &:first-child {
            border-top: 1px solid #d2d2d2;
        }
    }
}
于 2013-11-14T16:51:25.603 回答
0

这绝不是一个答案的提议,也没有人需要支持我,因为我已经从@christianmenkens. 非常感谢克里斯!

这只是我所经历的一个额外的例子,评论空间太少了。正如克里斯蒂安所说,这是一个我永远猜不到的问题。

我的问题在于滚动 div。我有一个 CSS:

.content-wrapper{
  width: 100%;
  height: 100%; /*This was causing the problem.*/
  overflow: auto;
  position: absolute;
  overflow-x:hidden !important;
  padding: 15px 20px 50px 20px;
} 

我已将其更改为:

.content-wrapper{
  position: absolute;
  top: 50px;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  padding: 15px 20px 50px 20px;
}
于 2014-10-17T09:42:47.590 回答