1

我正在使用 core-plot 库在我的 iPhone 应用程序上绘制条形图,当我尝试向图表添加标签或其他一些视图时出现问题,

实际上我添加的视图是这样垂直反转的......

代码就像

UILabel *lbl= [[UILabel alloc] initWithFrame:CGRectMake(250, 90, 70, 25)];
    [lbl setBackgroundColor:[UIColor redColor]];
    [lbl setText:@"HELLO"];
    [self.view addSubview:lbl];
    [lbl release];

我不敢玩 core-plot 库。

那么有没有其他方法可以做正确的事情呢?我应该在添加视图之前进行转换吗?

如果这是解决方案,那么这将是昂贵的,因为我必须添加多个子视图。

希望每个人都清楚我的问题。

4

3 回答 3

16

好吧,看起来核心图视图是使用 CGAffineTransform 反转的。您的视图可能从其父视图继承了反转。其实做起来很简单

lbl.transform = CGAffineTransformMakeScale(1,-1);

应该做的伎俩。如果你必须做很多次,也许可以用类似的东西来简化它,

CGAffineTransform verticalFlip = CGAffineTransformMakeScale(1,-1);
lbl.transform = verticalFlip;
otherLbl.transform = verticalFlip;

ETC...

x轴翻转将是CGAffineTransformMakeScale(-1,1);

于 2009-12-11T11:14:07.433 回答
6

为避免猜测实际的变换值,您可以尝试使用CGAffineTransformInvert函数:

lbl.transform = CGAffineTransformInvert(self.view.transform);
于 2009-12-11T11:20:58.707 回答
0

如果我们要转换一个 3D 模型的图层,您需要按如下方式处理它,

斯威夫特 5:

// To inverse the graph vertically
annotationGraph.transform = CATransform3DMakeAffineTransform(CGAffineTransform(scaleX: 1, y: -1))

否则你会收到这个,

无法将“CGAffineTransform”类型的值分配给“CATransform3D”类型

于 2019-06-03T07:16:17.770 回答