[TIMOB-17706] iOS: TTIDs change on TableView scroll
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | High |
Status | Open |
Resolution | Unresolved |
Affected Version/s | n/a |
Fix Version/s | n/a |
Components | iOS |
Labels | scroll, tableView, touchtestid |
Reporter | Eric Wieber |
Assignee | Pedro Enrique |
Created | 2014-09-16T20:19:24.000+0000 |
Updated | 2015-04-09T23:52:11.000+0000 |
Description
A customer is seeing incorrect TTIDs being detected on their tableview during a recording. The odd part is that the TTIDs are correctly defined when I look at the tableview before scrolling. After I scroll the table, the TTIDs seem to change. The table is defined as:
<Alloy>
<TableViewSection id="mostPopularSection" headerTitle="Most Popular">
<TableViewRow id="mostRead" class="mp" title=" Read" />
<TableViewRow id="mostEmailed" class="mp" title=" Emailed" />
<TableViewRow id="mostSaved" class="mp" title=" Saved" />
<TableViewRow id="mostCommented" class="mp" title=" Commented" />
</TableViewSection>
</Alloy>
<Alloy>
<TableViewSection id="settingsSection" headerTitle="Settings">
<TableViewRow id="about" class="settings" title=" About" />
<TableViewRow id="toc" class="settings" title=" Terms & Conditions" />
<TableViewRow id="privacy" class="settings" title=" Privacy Policy" />
<TableViewRow id="reload" class="settings" title=" Reload Data" />
<TableViewRow id="logout" class="settings" title=" Logout" />
<TableViewRow id="environment" class="settings" title=" Environment" />
</TableViewSection>
</Alloy>
After scrolling, I see that the last 3 rows in the second section have the TTIDs of the top rows in the first section. Is there an explanation for this?
Unfortunately, the customer cannot share the source of the project, but they have given me an IPA that is able to be installed on one of our devices.
SOASTA would like to discuss a solution for this with engineering. I will post their questions/requests in the comments.
Attachments
File | Date | Size |
---|---|---|
iOS Simulator Screen Shot 18 Nov 2014 17.29.49.png | 2014-11-18T17:33:23.000+0000 | 29367 |
iOS Simulator Screen Shot 18 Nov 2014 17.30.29.png | 2014-11-18T17:33:23.000+0000 | 50813 |
SOASTA's Comments: "Part of the reason why the TTID's aren't being accurately recorded is because the payload of the view changes, not the view itself. Going off of what is happening now, it looks like appcelerator is only setting TTID's for what's currently being displayed + a few buffered views. When the user scrolls, the views themselves are not being destroyed. Instead, the view content is replaced with the new content. This is a sort of an issue on our side as we tie the TTID's to the views. so if the view do not change, but the content changes, we currently rely on the developer to know when the payload content has changed. Can you let us know how they're setting the touch test ids for a scroll view elements? We are assuming right now they're only assigning the TTID's with what views they currently can see by asking what elements it has. Even if we did end up doing something gracefully on our end to implement this payload change detection feature, we would still need them to tell us the TTID's for the payloads that aren't currently displayed as it doesn't look like non-visible TTID's are ever given to our side of the code." "Little change on my previous comment. We would need info from developer from Appcelerator in how they are assigning the TTID's to the payloads" "Upon further investigation , we are the ones storing and assigning the touch test ids. However, we still need to know how your code is working to know how we can know when the content of the payload changes in the UiTableViewCell. This is not something we currently look for as we attach the TTID's onto the views. we would still need to discuss with Your developer whether you have or can easily implement something like "on content change, execute callback""
Tested with latest Soasta version, when page is scrolled, unable to see IDs of any object that was not inside initial view. See attached screenshot. Ids of the elements that are possible to select are correct.