我正在创建一个自定义弹出框背景,因此我将 UIPopoverBackground 抽象类子类化。在创建布局函数时,我遇到了放置和旋转背景箭头的问题。
第一张图片显示了所需位置的箭头。在下面的代码中,我计算了我想要的原点,但旋转似乎已经将图像的新位置平移了大约 11 个点。如您所见,我创建了一个 hack 解决方案,将箭头移动了 11 个点。但这仍然无法掩盖我的数学技能存在漏洞这一事实。如果有人能向我解释这里发生了什么,我将永远感激不尽。还有一个很好的是一个不涉及幻数的解决方案,这样我就可以将此解决方案应用于带有向上、向下和向右箭头的情况
#define ARROW_BASE_WIDTH 42.0
#define ARROW_HEIGHT 22.0
case UIPopoverArrowDirectionRight:
{
width -= ARROW_HEIGHT;
float arrowCenterY = self.frame.size.height/2 - ARROW_HEIGHT/2 + self.arrowOffset;
_arrowView.frame = CGRectMake(width,
arrowCenterY,
ARROW_BASE_WIDTH,
ARROW_HEIGHT);
rotation = CGAffineTransformMakeRotation(M_PI_2);
//rotation = CGAffineTransformTranslate(rotation, 0, 11);
_borderImageView.frame = CGRectMake(left, top, width, height);
[_arrowView setTransform:rotation];
}
break;