gpt4 book ai didi

ios - 仅旋转 View 而不旋转其 subview

转载 作者:可可西里 更新时间:2023-11-01 05:23:00 26 4
gpt4 key购买 nike

有没有什么方法可以将旋转 View 的变换传递给它的 subview ?我有一个自定义 MKAnnotationView,我根据用户的标题值旋转它。在自定义注释 View 类的以下方法中,我向注释 View 添加了一个 subview 。

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];

if(selected)
{
[self addSubview:self.myCallOutView];
return;
}
[self.myCallOutView removeFromSuperview];


}

但问题是当我的注释 View 旋转然后我选择任何注释时,myCallOutView 也出现旋转,这是我不想要的。我正在使用下面的行旋转自定义注释 View

  [self setTransform:CGAffineTransformMakeRotation(angle * M_PI / -180.0)];

如何避免这种情况?在将其添加为 subview 之前,我是否需要对 myCallOutView 应用一些转换?

最佳答案

一个非常简单的解决方案是在 subview 上执行反向旋转:

[self setTransform:CGAffineTransformMakeRotation(angle * M_PI / -180.0)];
// NOTE: we're using the negative of the angle here
[self.myCallOutView setTransform:CGAffineTransformMakeRotation(- angle * M_PI / -180.0)]];

这将抵消旋转对父 View 的影响。

替代方法:以稍微不同的方式构建您的 View :不是让 View A 位于 View B 内,而是让 View A 和 B 都成为容器 View C 的 subview 。然后只需将旋转应用于 View A、B不受影响。要在显示器上移动整个整体,请重新定位容器 View C。

关于ios - 仅旋转 View 而不旋转其 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com