首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS UILabel 垂直顯示文字:使用 CGAffineTransform 旋轉 90 度

     編輯:程式設計綜合問答

需求:將 UILabel 文字垂直排列(如 Y 軸刻度標籤)。最簡單方法:應用旋轉變換。

核心代碼

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x, y, width, height)];
label.text = @"垂直文字";
label.textAlignment = NSTextAlignmentCenter;
// 逆時針旋轉 90 度(或順時針 270 度)
label.transform = CGAffineTransformMakeRotation(-M_PI_2); // -90度
// 或
label.transform = CGAffineTransformMakeRotation(M_PI_2 * 3); // 270度

關鍵點

  • transform 不影響佈局框架(frame 不變),僅改變繪製矩陣。
  • 旋轉後文字可能超出原 frame,需適當調整 frame 大小或使用 sizeToFit 後再旋轉。
  • 自動佈局下,旋轉可能導致約束衝突,建議在 viewDidLayoutSubviews 中設置 transform。

進階:逐字符垂直排列(非整體旋轉)

若需「竖排」效果(字符順序不變,逐行向下),需自定義繪製或使用 CATextLayer 設置 string 並調整字符間距,較複雜,視具體設計決定。

整體旋轉最輕量,適用於刻度標籤、側邊標題等場景。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved