Theoretically, doing this in a scene set using SpriteKit or UIKit Popovers is ideal.
However, the Scene Kit (and the Sprite Kit) seems to be in a stream state in which no one at Apple communicates with users about the many problems that people are currently facing with both. From the relatively stable and experienced Sprite suite in iOS 8.4 to the many lost features in iOS 9, it seems commonplace. The Scene Kit simply does not seem complete, and as a result, the documentation and the community almost do not exist.
That said ... the theory is this:
Material identifiers are used in traditional 3D applications to identify areas of an object with different materials. Somehow, these material identifiers are called "elements" in SceneKit. I could not find much more about this.
It should be possible to detect an “element” that is under the touch of an object and react accordingly. You can even change the state / nature of the material on this element to indicate it at the current moment.
If you need a smooth, well-rounded cylinder according to your example, start with a cylinder consisting of just enough segments to describe / define the material identifiers that you need for your “rectangular” sections to be touched.
You can later add a smoothing operation to the cylinder to make it round, and all the additional smoothing geometry in each quadrant of the unique material identifier should respond, regardless of how you add this additional detail to smooth the cylinder view.
source share