【问题标题】:UI Automation: which delegate methods are called when scrolling in a scrollviewUI 自动化:在滚动视图中滚动时调用哪些委托方法
【发布时间】:2011-03-03 22:46:27
【问题描述】:

我是 iOS4 引入的 UIAutomation 的新手。我正在编写一个需要在滚动视图中滚动的测试。

所以UIAScrollView有以下方法:

  • 向上滚动
  • 向下滚动
  • 向左滚动
  • 向右滚动
  • scrollToElementWithName
  • scrollToElementWithPredicate
  • scrollToElementWithValueForKey

我想知道在我的脚本中使用这些函数时,应用中调用了哪些UIScrollView 委托方法。

【问题讨论】:

    标签: iphone unit-testing ios4 uiscrollview ios-ui-automation


    【解决方案1】:

    UI 自动化几乎与您的应用程序无关,实际上您甚至可以为不属于您的应用程序运行自动化。实际上,您必须知道每个元素的可访问性标签。因此它应该调用普通的UIScrollViewDelegate,其中包含:

    Responding to Scrolling and Dragging
    – scrollViewDidScroll:
    – scrollViewWillBeginDragging:
    – scrollViewDidEndDragging:willDecelerate:
    – scrollViewShouldScrollToTop:
    – scrollViewDidScrollToTop:
    – scrollViewWillBeginDecelerating:
    – scrollViewDidEndDecelerating:
    
    Managing Zooming
    – viewForZoomingInScrollView:
    – scrollViewWillBeginZooming:withView:
    – scrollViewDidEndZooming:withView:atScale:
    – scrollViewDidZoom:
    
    Responding to Scrolling Animations
    – scrollViewDidEndScrollingAnimation:
    

    只需将所有内容实现到您的应用程序中并 NSLog() 调用哪个。
    不确定这是不是你想知道的。

    【讨论】:

    • 我确信我不能将 UI 自动化用于不属于我自己的应用程序。我已经在我的设备上进行了测试。当我切换到其他应用程序时,UI 自动化脚本会暂停。但是有时它可以在模拟器中控制其他应用程序。但这不是我的问题。我可以在每个委托方法中使用 NSLog,但我懒得这么做——这就是我在这里问它的原因。
    • 不能在其他应用上运行?我的错,还没有做任何事情,对不起。
    • 您应该能够在不属于您自己的应用程序上使用 UIAutomation,但您必须在 Instruments 中绑定到该应用程序进程。您不能在跟踪过程中切换进程。
    猜你喜欢
    • 2016-08-04
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-31
    相关资源
    最近更新 更多