SOLVED: see comments for what the problem was
I am implementing a subclass on UIScrollView which will be a horizontally scrolling row of subviews/"cells". Basically a horizontally scrolling "table view" like element. Each of the subviews/"cells" in the UIScrollView content view have a UIGestureRecognizer attached to them so that when a person touches one of them, the UIGestureRecognizer will trigger.
The problem is that when a person has scrolled away from the contentView origin, i.e., the UIScrollView returns a contentOffset where x is other than 0, any of the new subviews/"cells" that scroll in from the right do not trigger the UIGestureRecognizer when touched. All the subviews DO have their UIGestureRecognizer.
Example, let's say I am display a row of 80x80 icons and my contentSize is 1600,80 for a row of 20 icons. The UIScrollView is 320,80 so it will show 4 of the icons. The initial 4 icons are touchable and the UIGestureRecognizer fires on each one. The user scrolls to the left, i.e., new icons come in from the right. These new icons (Subviews) are created and added in to the contentView I use in the UIScrollView the same way as the original 4. But the new icons (subviews) that were not in the original bounds do not trigger. I implement my own queue/dequeue of the subviews analogous to what a tableview does so if I have scrolled over by place #15, none of the original icons (subviews) is even in the contentView as the subviews are recycled (and old UIGestureRecognizers removed and new ones attached when it is pulled off the queue and reused) and none of these are touchable and trigger the UIGestureRecognizer.
HOWEVER, if the user then scrolls back to the beginning, even though those cells are newly added to the contentView, they ARE touchable as long as their bounds are within the original frame of the UIScrollView and the UIView contentView I used to aggregate inside the scroll view. So it seems that it is dependent on the frame of each subview and whether or not it lies within the frame of the scrollview.
Everything displays fine -- as it scrolls the contentOffset changes and I remove and add subviews. It is just the UIGestureRecognizers attached to each subview that are not triggering and are position dependent on being within the original bounds of the Scrollview before it starts scrolling.
I've been scratching my head on this all day, and half a day yesterday) and narrowing it down to being position dependent on not something else.
I would post code but am not sure what to post as there is a lot of code that runs this.