小编mar*_*mor的帖子

UIACollectionView单元格与visibleCells

我正在尝试使用xcode 4.5中的自动化编写测试脚本.

我有一个UICollectionView,我想点击一些当前不可见的单元格.

根据文档,我应该cells返回集合视图中的所有单元格,并visibleCells仅返回当前可见的单元格.

相反,我所看到的是,单元格只返回当前可见的单元格,调用visibleCells会停止脚本 'undefined' is not a function (evaluating 'collection.visibleCells()')

var target = UIATarget.localTarget();
var collection = target.frontMostApp().mainWindow().collectionViews()[0];

UIALogger.logMessage("Looking in collection: " + collection);
UIALogger.logMessage("Cells: " + collection.cells() + " length " + collection.cells().length);
UIALogger.logMessage("Visible cells: " + collection.visibleCells());
Run Code Online (Sandbox Code Playgroud)

上面的代码返回正确的UICollectionView第二个日志行打印:

Cells: [object UIAElementArray] length 12
Run Code Online (Sandbox Code Playgroud)

虽然我在集合视图中有100个项目,但第三个日志行崩溃了脚本.

这是一个文档/ UIACollectionView错误吗?

任何想法如何告诉自动化滚动,直到它看到一个名为"我的手机"的单元格?我已经尝试过使用someCell.scrollToVisible,但是我需要让单元格来做这件事,而我不会因为我无法从单元格中获取它.

编辑:

正如Jonathan所建议的那样,我实现了一个滚动查找函数.这是一个特定的实现,所以你可能需要调整isCellWithName.我也想添加一个休息时间,以防我们在while循环中找不到所需的单元格,如果有人有想法,请随时编辑它.

function isCellWithName(cell, name) {
    return (cell.staticTexts()[0].name() == name);
}

function getCellWithName(array, name) …
Run Code Online (Sandbox Code Playgroud)

uiscrollview ios ios-ui-automation uicollectionview

5
推荐指数
1
解决办法
3816
查看次数

iOS:在XIB中禁用UI镜像

iOS 6如果用户是从右到左的语言环境(希伯来语,阿拉伯语),那么有一个新的"功能"镜像xib文件中的UI元素.(http://developer.apple.com/library/ios/#documentation/miscellaneous/conceptual/iphoneostechoverview/iPhoneOSTechnologies/iPhoneOSTechnologies.html)

它完全搞砸了我的界面.

有没有办法在不禁用自动布局的情况下禁用它?

user-interface mirroring xib ios ios6

5
推荐指数
2
解决办法
2831
查看次数

每个构建变体的不同应用程序类在某些设备上崩溃

我已经修改了 mybuild.gradle以使用Application基于构建变体 ( debug/ release) 的不同类。

WrapperApplication在文件夹“ debug”中添加了两个类,在文件夹“ ”中添加了第二个release类,这两个类都扩展了一些基Application类。

AndroidManifest我指出com.my.package.WrapperApplication,它确实使用了正确的。在向 Play 发布测试 apk 时,我收到了一份发布前报告,说我的新版本在测试的 13 台设备中的 2 台(Moto G 和 Moto X)上崩溃了。

很想知道它为什么会崩溃,如果构建中出现问题,它对我和其他 11 个测试的测试设备如何工作。

这是我收到的堆栈:

 FATAL EXCEPTION: main
 Process: com.my.package, PID: 16348
 java.lang.RuntimeException: Unable to instantiate application com.my.package.WrapperApplication: java.lang.IllegalStateException: Unable to get package info for com.my.package; is package not installed?
    at android.app.LoadedApk.makeApplication(LoadedApk.java:516)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4398)
    at android.app.ActivityThread.access$1500(ActivityThread.java:139)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136) …
Run Code Online (Sandbox Code Playgroud)

android android-studio build.gradle android-gradle-plugin

5
推荐指数
1
解决办法
1351
查看次数

可变高度的md卡堆叠在2列或1列中

我正在寻找一种方法在Angular 1上以响应的方式显示4张具有可变高度的卡片.

在大屏幕上它应该显示如下:

+-------+ +-------+
|   1   | |   2   |
|       | |       |
+-------+ |       |
|   3   | |       |
|       | +-------+
|       | |   4   |
|       | |       |
+-------+ |       |
          |       |
          +-------+
Run Code Online (Sandbox Code Playgroud)

在小屏幕上应该显示如下:

+-------+
|   1   |
|       |
+-------+
|   2   |
|       |
|       |
|       |
+-------+
|   3   |
|       |
|       |
|       |
+-------+
|   4   |
|       |
|       |
|       |
+-------+
Run Code Online (Sandbox Code Playgroud)

这对于响应性要求是可行的,但如果另一张卡更高,则在同一列上的卡之间显示大的空间 …

angularjs md-card

5
推荐指数
1
解决办法
71
查看次数

在抛出异常之前从堆栈跟踪中删除最后一个方法

我有一个实用方法来计时和记录整个项目中的各种查询。问题是,crashlytics现在看来,所有不相关的崩溃都被合并到一个崩溃实例中。

我可以捕获实用程序方法上的所有异常,并在从堆栈中删除该方法后抛出它们吗?

环境是AndroidJava

更新:

根据下面@Dhananjay 的回答,这是我的代码:

public static Cursor get(...) {
    try {
        // my utility code
    } catch (RuntimeException e) {
        throw cleanException(e);
    }
}

private static RuntimeException cleanException(RuntimeException e) {
    try {
        StackTraceElement[] stackTrace = e.getStackTrace();
        StackTraceElement[] subTrace = new StackTraceElement[stackTrace.length - 1];
        System.arraycopy(stackTrace, 1, subTrace, 0, subTrace.length);
        e.setStackTrace(subTrace);
        return e;
    } catch (Throwable ignored) {
        return e;
    }
}
Run Code Online (Sandbox Code Playgroud)

java android try-catch stack-trace crashlytics

3
推荐指数
1
解决办法
2462
查看次数

在版本1.24.0中破解的crashlytics(fabric)Android Studio插件

我一直在:

错误:无法确定任务':main:crashlyticsStoreDeobsDebug'的依赖关系.
在项目':main'中找不到路径'dexDebug'的任务.

gradle包括:

classpath 'io.fabric.tools:gradle:1+'
Run Code Online (Sandbox Code Playgroud)

gradle crashlytics android-studio google-fabric

3
推荐指数
1
解决办法
666
查看次数

git-flow完成发布 - 选择性合并

我们最近开始git-flow在我们公司使用,我们遇到了以下问题:

我们有一个DEV_MODE布尔值来控制应用程序中的日志记录级别,我们希望开发分支始终具有DEV_MODE=true.
但是,在发布版本时,我们将更DEV_MODE改为false.

当我完成发布时git-flow,它会合并DEV_MODE=false到开发分支中.

我有一个钩子,我可以用来防止这种情况,或者可能告诉git如何合并发布分支中的文件以进行开发?

git git-merge git-flow

2
推荐指数
1
解决办法
94
查看次数