andreamazz / andreamazz/AMPopTip

Poptips can appear off screen

Open
#178 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Swift
Stars
3.3k
Forks
449
PR merge metrics
No merged PRs in 30d

Description

Thanks for the great framework!

Wanted to report what seems like a bug with a similar behavior to #133.

![image](https://user-images.githubusercontent.com/1304735/54304069-b12e0300-45c4-11e9-8b1e-099dda775ad1.png)

In the image the tooltip is being presented from the superview of the people button it is pointing at but it ends up being positioned partially off screen.

The full config for the popTip is
```
popTip.cornerRadius = 8
popTip.textColor = UIColor.black
popTip.bubbleColor = UIColor.white
popTip.borderColor = UIColor.white
popTip.shadowColor = UIColor.black
popTip.shadowRadius = 10
popTip.shadowOffset = CGSize(width: 0, height: 4)
popTip.shadowOpacity = 0.25
popTip.arrowSize = CGSize(width: 18, height: 7)
popTip.edgeMargin = -3
popTip.padding = 16
popTip.shouldDismissOnTapOutside = true
popTip.shouldDismissOnSwipeOutside = true
popTip.shouldDismissOnTap = true
popTip.constrainInContainerView = false
```

Would it make sense to have a property like `constrainOnScreen` that is similar to `constrainInContainerView` except that a check is made to make sure that he tooltip is on screen?

Note that I increased `edgeMargin` to 20 and it had no effect in this case. Another side note is that I set edgeMargin to -3 since if a tooltip is close to the top of the screen and the arrowSize is larger then the tooltip arrow does not render correctly but that is a separate issue I can file.

In the example above the superview is fully on the screen but because of `constrainInContainerView = false` the tooltip is allowed to be laid out off the screen.

Also note that the tooltip could be presented from the keywindow or a top level view controller to avoid being offscreen since the window is full screen and `constrainInContainerView` can be set to `true`, but then if the button (or whatever the tooltip is pointing at) moves then the tooltip is just left floating pointing at nothing. Keeping the tooltip presented from a view close in the view hierarchy avoids a lot of corner case handling for when views move.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.