UI-2-UILabel&UIImageView-補充

課程要點:app

  • 控件之間的繼承關係、
  • UILabel
  • UIImageView
  • 利用UIImageView實現幀動畫
  • 補充

 試圖之間的繼承關係函數

    

  昨天學習UIView的時候,瞭解到UIView裏面有如下幾個經常使用屬性學習

     * backGroundColor:背景顏色字體

     * alpha:透明度動畫

     * subViews:子試圖集合spa

     * hidden:是否隱藏操作系統

     * tag:標籤值code

     * superview:父試圖orm

      咱們從這些基本屬性能夠發現,UIView裏面沒有屬性讓在文字顯示在試圖上面,也就是說UIView這個試圖,沒法知足咱的需求。此時UILabel就應運而生。在深刻學習UILabel以前,我們須要先研究一下UIView與UILabel的關係。對象

 [self.window makeKeyAndVisible];      

//首先按照我們建立控件的三步走建立一個UILbale,並把他在Window上。 UILabel *testLabel = [[UILabel alloc]init]; //按住command的同時鼠標點擊frame,此時我們能查看到關於frame屬性的API testLabel.frame = CGRectMake(100, 100, 120, 30); [self.window addSubview:testLabel];

 

 

     出現這種狀況的主要緣由是UILable繼承於UIView,因爲UILabel跟UIView有不少通用的屬性,所以系統的UILabel類直接採用繼承的方式,避免了在UILabel中寫重複的屬性。

    PS:在工程裏,咱們怎麼查看UILabel類是繼承於誰的。按住Command的同時點擊該類名。系統會自動定位到該類的.h文件中的interface部分,冒號部分是誰,就表示這個類繼承於誰。在作項目的過程當中學會怎麼查看API以及習慣於查看API

    

 

UILabel:他是一個標籤試圖,繼承UIView,不適合放太多的文本內容。

    //首先建立一個UILabel對象
    UILabel *testLabel = [[UILabel alloc]init];
    
    //設置testLabel的位置和大小
    testLabel.frame = CGRectMake(100, 100, 120, 100);
    
    //設置testLabel的背景顏色
    testLabel.backgroundColor = [UIColor grayColor];
    
    //給testLabel設置字符串
    testLabel.text = @"全球領先的移動設備操做系統";

    //給testLabel設置字體顏色
    testLabel.textColor = [UIColor greenColor];
    
    //給testLabel設置對其方式
    testLabel.textAlignment = NSTextAlignmentCenter;
    
    //給testLabel設置字體大小
    testLabel.font = [UIFont systemFontOfSize:17];
    
    //給testLabel設置陰影顏色
//    testLabel.shadowColor = [UIColor blackColor];
    
    //給testLabel設置陰影偏移量 此時你能夠試試若是此時填的是(-5,-5)會是什麼效果
//    testLabel.shadowOffset = CGSizeMake(10, 10);
    
    //給testLabel設置行數 1是一行顯示 2是兩行顯示  0是根據內容自適應函數
    testLabel.numberOfLines = 2;
    
    //根據testLabel的寬高自動設置字體大小,從而讓內容所有顯示出來
    testLabel.adjustsFontSizeToFitWidth = YES;
  
    [self.window addSubview:testLabel];

 

  

   UIImageView:圖片試圖,繼承UIView,主要用來顯示圖片

   怎麼在工程裏放圖片

     

 

    

 

 

 

 //建立一個試圖對象
    UIImageView *imgView = [[UIImageView alloc]init];


    //若是圖片是PNG格式的,圖片名不須要加後綴,不然都要加後綴
    imgView.image = [UIImage imageNamed:@「圖片名字"];


    //在某個方向上讓圖片自適應,已達到最好看的效果。
    imgeView.contentMode = UIViewContentModeScaleAspectFit;
    
    //讓圖片充滿整個frame
    imgeView.contentMode = UIViewContentModeScaleToFill;
    //取到圖片的相應位置,並放到屏幕上,會超出設置的圖片試圖Frame
    imgeView.contentMode = UIViewContentModeRight;
    
    //裁剪掉超出試圖frame的部分
    imgeView.clipsToBounds = YES;

    
   //給試圖設置frame
    imgView.frame = CGRectMake(10, 10, 300, 400);
    
   //將試圖放在window上
    [self.window addSubview:imgView];

 

用UIImageView設置一個幀動畫

 

  /*
     * 建立幀動畫四要素
        一、設置間隔時間
        二、準備圖片素材
        三、設置重複次數
        四、開始動畫
        五、結束動畫
     */
    
    
    //animationDuration設置動畫的時間間隔
    imgView.animationDuration = 1;
   
    
    UIImage *img1 = [UIImage imageNamed:@「圖片名字」];
    
    UIImage *img2 = [UIImage imageNamed:@"圖片名字"];

    NSArray *array = @[img1,img2];
    
    //給幀動畫準備素材
    imgView.animationImages = array;
    
    //給動畫設置重複次數
    imgView.animationRepeatCount = 0;

    //開始動畫
    [imgView startAnimating];

    //結束動畫
    [imgView stopAnimating];
 

  PS:UIImageView與UIImage的區別,UIImageView他就比如是一塊專門放圖片的位置,UIImage對象就是你要放置的圖片。

    

    補充

 

#import "AppDelegate.h"

/*
 * 宏定義格式:
 
     #define k常量名 @""
 
 * 做用:宏定義就是用內容替換變量名,不只能夠替換字符串還能夠替換一句代碼
 
 * 命名規則:k+駝峯命名法,例如:kCotent
 
 */
//
//
#define kContent @"我改過的內容"
#define kLabelX label.frame.origin.x
#define kScreenWidth [UIScreen mainScreen].bounds.size.height

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
#pragma mark 補充
    /*
     
     * 延遲方法performselector
     
     * CGRectGetHeight(<#CGRect rect#>)
    
     * [UIScreen mainScreen].bounds.origin
     
     * 宏定義
     
     * 宏定義的使用技巧
     
    */
    
    [self.window makeKeyAndVisible];
    
    //延遲多少秒後執行相應的方法,用selector選擇的方法必定要實現,不然會崩潰。
    [self performSelector:@selector(start) withObject:nil afterDelay:5];
    
    
    UILabel *label = [[UILabel alloc]init];
    
    label.frame = CGRectMake(10, 20, 120, 49);
    
    label.backgroundColor = [UIColor redColor];
    
    label.text = kContent;  //此時用到宏定義,試着按住command的同時點擊kScreenWidth
    
    
    [self.window addSubview:label];
//    獲取到label的x值方式
//    //第一種方式
//    NSLog(@"label的x=%f",kLabelX);
//    //第二種方式(這種方式還能獲取到空間的最右邊中間的x值,試着用看UILabel是繼承哪一個類的方式來查看怎麼獲取到label高,寬)
//    NSLog(@"label的x=%f",CGRectGetMinX(label.frame));
    
    //UIScreen指的就是屏幕,能幫組咱們獲取到各類屏幕的寬和高,再次我用宏定義來獲取
    NSLog(@"屏幕的高=%f",kScreenWidth);
    
    return YES;
}

- (void)start{
    
    
}
相關文章
相關標籤/搜索