我想要的是将上下文旋转90度并将原点设置为左上角。这就是我尝试这样做的方式:
- (void)drawRect:(CGRect)rect {
CGFloat red[4] = {1.0f, 0.0f, 0.0f, 1.0f};
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetStrokeColor(c, red);
CGContextSetLineWidth(c, 2);
CGContextRotateCTM(c, (-90.0 * M_PI/180.0)); // 90 degrees
CGContextTranslateCTM(c, -rect.size.height, 0);
CGContextAddRect(c, CGRectMake(0, 0, 100, 100));
CGContextStrokePath(c);
}
我期望矩形在左上角完全可见。但这里看起来像这样:
答案 0 :(得分:2)
您的代码实际上是正确的。旋转+平移将坐标系的原点移动到视图的左下角,x轴指向上方,y轴指向右方。如果将设备旋转90度,则在缩进时,原点将显示在左上角。
问题是视图矩形对于显示来说太大了。正如您在讨论中所说,矩形的高度为548,即4英寸显示屏的高度(减去状态栏)。因此,如果您在4英寸显示屏上启动应用程序,则会在底部剪切矩形。
您必须调整视图的大小/自动调整大小选项,以便在所有设备上正确显示。