I am using the new popOverPresentationController to present UIPopOverController in iOS 8.
I set the popOverLayoutMargins with a value like
It works on iOS 13 now.
I guess the arrow point origin maybe follow this expressions
let xRatio = (permittedArrowDirections is horizonal) ? 1/2 : 1
let yRatio = (permittedArrowDirections is vertical) ? 1/2 : 1
x = sourceRect.origin.x + sourceRect.size.width * xRatio + popoverLayoutMargins.left
y = sourceRect.origin.y + sourceRect.size.height * yRatio + popoverLayoutMargins.top
It is an Apple bug which has not yet been fixed. References to the bug can be found in this example code and on the Apple developer forums.
There is currently no clear workaround for this issue. A bug report with ID 18392444 has been filed with Apple.