我有一些UI测试在过去的一年里一直有效,它们每晚都在运行,我们设置了一个监视器,这样我们就可以看到它们何时失败,而且它们已经好几个月没问题了。今天早上,我们将机器更新到Xcode8.3.2,并将构建服务器从8.2更新到8.3.2,现在UI测试不再通过。我有一个tableView,里面有12个单元格,前6个是可见的,但我想按下最后一个单元格,所以我调用swipeUp()来滚动tableView。通常,tableView会滚动一两秒,然后我想要的单元格变得可见,我能够断言它存在并在其上调用tap()。但是现在,当观察UI测试运行时,当调用swipeUp()方法时,它不再滚动很长时间。它似乎
如何在XCTests中检查标签栏角标(Badge)(tabBarItem.badgeValue)包含正确的数字?我可以在辅助功能检查器中看到目标标签栏按钮,但角标(Badge)元素不可检查。 最佳答案 您可以将accessibilityIdentifier值设置为标签栏项目。tabBarItem.accessibilityIdentifier="Your_Identifier"在您的UITest案例上,guardletvalue=app.buttons["Your_Identifier"].valueas?Stringelse{XC
我有以下AcceptCallBack方法,并希望在该方法运行时添加一个UIActivityIndicator,因此[mvcperformSelectorOnMainThread:@selector(invoke)withObject:nilwaitUntilDone:YES];。invoke是改变UI的方法。然后我用这行[mvcperformSelectorOnMainThread:@selector(hide)withObject:nilwaitUntilDone:YES];删除UIActivityIndicator。然而,似乎发生的是invoke仅在AcceptCallBa
我正在寻找一种方法来获得类似于MBProgressHUD的叠加层,但可以显示更多内容,例如图像和一些带有关闭按钮的文本。不想在模态视图中使用bult,而是使用更简洁、体积更小的东西-有点像您在iPad上的图书应用程序中看到的漂亮的平面弹出窗口。我一直在寻找但没有运气-有人见过这样的东西吗? 最佳答案 这会是您要找的吗?http://cocoacontrols.com/platforms/ios/controls/wepopoverWEPopover显然是一个iPhone的popoverUI控件,它尽可能地模仿了iPad上的UIPop
我一直在我的项目中使用CoreData,我一直依赖它的数据错误系统来返回缓存数据,但是我遇到了一些性能问题,尤其是在配置其View的UITableView中显示数据时基于这个获取的数据。它基本上是通过它们的唯一ID获取一些NSManagedObject实例,并将存储在NSNumber中的值相加。它在for循环中对大约40个不同的对象执行此操作,并且每次重新加载UITableView时都会执行此操作。是否有任何建议的方法来监听CoreDataNSManagedObjects中的更改或在我的级别缓存数据的方法,或者我应该依赖数据错误,而这只是我做错了什么?如果您能指出一个好的模式来处理
我正在尝试从不在我的Storyboard中的UI元素触发Storyboardsegue(在本例中,它是UIAlertView)。因此,我无法从Storyboard中的任何现有组件中绘制箭头。处理这种情况的正确方法是什么?我需要一个带有标识符的segue,以便我可以从相关的UIAlertView按钮调用它。 最佳答案 您可以通过右键单击+拖动将您的segue从您的源Controller添加到您Storyboard中的目标Controller。然后只需单击创建的segue并设置标识符。您可以像这样以编程方式触发您的segue://Not
我的应用目前由一个TableViewController和一个ViewController组成。当TableView中的cell被选中时,ViewController被推送,这是主应用程序。此ViewController之前在主线程中加载了它所有的UIViews,这导致屏幕在代码运行时卡住,常常让用户认为它已经崩溃。为防止出现此问题并改善用户体验,我已将代码更改为以下整体格式:-(void)viewDidLoad{[superviewDidLoad];//Doanyadditionalsetupafterloadingtheview.[selfinitialiseApp];}-(voi
我是任何类型的iOS编程的新手。我正在尝试为我的场景之一编写UI测试用例。以下是我使用重新编码方法并点击自定义组件时得到的代码。letbutton=XCUIApplication().children(matching:.window).element(boundBy:0).children(matching:.other).element.children(matching:.button).element在这个自定义组件中有两个按钮。我想知道选择了哪个按钮。为此,我需要识别按钮。但无论我点击自定义View,我都会得到相同的代码。如何访问自定义View中的每个组件。任何帮助都会很棒。
我们的项目适用于所有iPAD,我们遇到了一个问题,例如我们有8个按钮垂直放置在屏幕上,并添加了垂直间距约束,它们在9.7英寸的iPAD上看起来很好,但在iPAD上看起来真的很大12.9,所以问题是,有没有什么好的方法可以实际使用屏幕空间来获得更好的效果,例如如果是iPAD12.9,则添加一个额外的UIView。我已经研究过使用尺寸等级,但我相信所有iPAD都有一个尺寸等级,我想要的是是否有一种方法可以使用界面生成器为不同的iPAD尺寸提供不同的UI 最佳答案 我想象你的情况是这个特定的ViewController有很多共享的东西,(
我有一个自定义UIView,它在drawrect方法中绘制图像。我的问题是UIView在我分配对象时要我initWithFrame。View的框架需要与图像大小和宽度相同。问题是在我创建的View的drawRect方法之前,我没有得到图像的大小和宽度。在drawRectView中,将UIView的框架更改为图像尺寸似乎没有效果。所以我想做的是这样的:MyCustomView*myCustomView=[[MyCustomViewalloc]initWithFrame:CGrectMake(0,0,0,0)];然后在MyCustomView的drawRect方法中,我想以某种方式将Vie