你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS開發中使用UIFont設置字體及批量創建控件

IOS開發中使用UIFont設置字體及批量創建控件

編輯:IOS開發綜合

在IOS 中,使用[UIFont familyNames]這個方法獲取72種系統字體。

使用[UIFont fontWithName:@"Zapfino" size:18]這個方法為空間中的文字設置字體和字號。

可以通過for循環批量定義控件並設置屬性。

以下程序獲取系統72種字體並存儲在一個數組中,有兩種方法,一種是通過for循環拿到每一種字體並添加到可變數組中,另一種是直接把72種字體賦值給一個數組。

注:在頁面控件較少的情況下選擇手動創建每個控件,在控件數量較大且有規律排布的時候使用循環批量創建控件。可以通過獲取硬件設備的分辨率進而讓控件的尺寸自動適配設備。具體方式為:

//屏幕尺寸
CGRect rect = [[UIScreen mainScreen] bounds];
  CGSize size = rect.size;
  CGFloat width = size.width;
  CGFloat height = size.height;
  NSLog(@"print %f,%f",width,height);

//分辨率
CGFloat scale_screen = [UIScreen mainScreen].scale;
width*scale_screen,height*scale_screen

程序內容:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
  [super viewDidLoad];
  
  
//  定義一個可變數組,用來存放所有字體
  NSMutableArray *fontarray = [NSMutableArray arrayWithCapacity:10];
//  遍歷UI字體
  for (id x in [UIFont familyNames]) {
    NSLog(@"%@",x);
    [fontarray addObject:x];
  }
  
  
//  直接把字體存儲到數組中
  NSArray *fontarrauy2 = [UIFont familyNames];
  NSLog(@"%@",fontarrauy2);
  
  
//  創建一個label,用來顯示設定某種字體的字符串
  UILabel *mylab1 = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 50)];
  mylab1.font = [UIFont systemFontOfSize:20];
  mylab1.font = [UIFont fontWithName:@"Zapfino" size:18];
  mylab1.font = [UIFont fontWithName:[fontarray objectAtIndex:10] size:18];
  mylab1.text = @"HelloWorld";
  [self.view addSubview:mylab1];
  
//  新建一個可變數組,用來存放使用for循環批量創建的label
  NSMutableArray *labarr = [NSMutableArray arrayWithCapacity:100];
  
  for (int x=0; x<24; x++) {
    for (int y=0; y<3; y++) {
//      循環創建72個label,每個label橫向間距135-130=5,縱向間距30-28=2,
      UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(y*135+7, x*30+20, 130, 28)];
      lab.backgroundColor = [UIColor colorWithRed:0.820 green:0.971 blue:1.000 alpha:1.000];
      lab.text = @"HelloWorld";
//      將創建好的label加入到可變數組
      [labarr addObject:lab];
    }
  }
  
//  使用for循環給72個label的字體設置各種字體格式
  for (int i=0; i<72; i++) {
    UILabel *lab = [labarr objectAtIndex:i];
    NSString *fontstring = [fontarray objectAtIndex:i];
    lab.font = [UIFont fontWithName:fontstring size:18];
    [self.view addSubview:[labarr objectAtIndex:i]];
  }
  
}

- (void)didReceiveMemoryWarning {
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

@end

以上就是本文的全部內容,希望對大家的學習有所幫助。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved