`insertSubview:at:` seems to be off by one
Closed this issue · 2 comments
Problem
insertSubviews
seems to be off by one, running the same code on iOS and macOS gives a different view hierarchy. Code to reproduce this in our DemoApp is attached at the bottom of the post, shortened pseudode below.
Pseudocode:
add 3 square views
insert a blue horizontal view at index #1
Results:
iOS | macOS |
---|---|
![]() |
![]() |
Correct, blue view seems to be on the position with index 1 | Incorrect, blue view seems to be on position with index 2 |
Note: this does not affect inserting at index 0 - that one behaves correctly
Snippets for reproduction and debugging
DemoAppControllerForInsertSubviewsTesting.txt
testScrollIndicatorsHierarchyPosition.txt
@janek thanks for reporting this. Apparently this doesn't affect our use cases directly but it's a pretty fundamental functionality that we should get right. It should also be easy to make a unit test for this that runs on both iOS and Android for this.
Thanks!
Yes, I already experimented with a test for both platforms. The snippet I posted doesn't exactly work, but is a useful starting point. It needs to have the indicator stuff commented out and have some more variety in cases it tests.
I didn't want to get too sidetracked, as I was doing something else, but I'm very happy to push this quite soon.