簡體   English   中英

如何將上下文旋轉90度並將原點設置為左上角?

[英]How to rotate context 90 degrees and set the origin to the upper left corner?

我正在嘗試將上下文旋轉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);
}

我期望的是矩形在左上角完全可見。 但這里看起來像這樣:

在此輸入圖像描述

你的代碼實際上是正確的。 旋轉+平移將坐標系的原點移動到視圖的左下角,x軸指向上方,y軸指向右方。 如果將設備旋轉90度,則縮進時原點將顯示在左上角。

問題是視圖矩形對於顯示來說太大。 正如您在討論中所說,矩形的高度為548,即4英寸顯示屏的高度(減去狀態欄)。 因此,如果您在4英寸顯示屏上啟動應用程序,矩形將被剪裁在底部。

您必須調整視圖的大小/自動調整大小選項,以便在所有設備上正確顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM