UIImageView

UIImageView

標籤(空格分隔): ios基礎


contentMode屬性

  • 帶有scale單詞的:圖片有可能會拉伸

    • UIViewContentModeScaleToFill
      • 將圖片拉伸至填充整個imageView
      • 圖片顯示的尺寸跟imageView的尺寸是一樣的
    • 帶有aspect單詞的:保持圖片原來的寬高比
      • UIViewContentModeScaleAspectFit
        • 保證剛好能看到圖片的全部
      • UIViewContentModeScaleAspectFill
        • 拉伸至圖片的寬度或者高度跟imageView一樣
  • 沒有scale單詞的:圖片絕對不會被拉伸,保持圖片的原尺寸

    • UIViewContentModeCenter
    • UIViewContentModeTop
    • UIViewContentModeBottom
    • UIViewContentModeLeft
    • UIViewContentModeRight
    • UIViewContentModeTopLeft
    • UIViewContentModeTopRight
    • UIViewContentModeBottomLeft
    • UIViewContentModeBottomRight

小語法點

  • 不能直接修改:OC對象的結構體屬性的成員
  • 下面的寫法是錯誤的
imageView.frame.size = imageView.image.size;
  • 正確寫法
CGRect tempFrame = imageView.frame;
tempFrame.size = imageView.image.size;
imageView.frame = tempFrame;

initWithImage:方法

  • 利用這個方法創建出來的imageView的尺寸和傳入的圖片尺寸一樣

修改frame的3種方式

  • 直接使用CGRectMake函數
imageView.frame = CGRectMake(100, 100, 200, 200);
  • 利用臨時結構體變量
CGRect tempFrame = imageView.frame;
tempFrame.origin.x = 100;
tempFrame.origin.y = 100;
tempFrame.size.width = 200;
tempFrame.size.height = 200;
imageView.frame = tempFrame;
  • 使用大括號{}形式
imageView.frame = (CGRect){{100, 100}, {200, 200}};
  • 抽取重複代碼

    • 將相同代碼放到一個新的方法中
    • 不用的東西就變成方法的參數
  • 圖片的加載方式

    • 有緩存

      UIImage *image = [UIImage imageNamed:@"圖片名"];
      • 使用場合:圖片比較小、使用頻率較高
      • 建議把需要緩存的圖片直接放到Images.xcassets
    • 無緩存

      NSString *file = [[NSBundle mainBundle] pathForResource:@"圖片名" ofType:@"圖片的擴展名"];
      UIImage *image = [UIImage imageWithContentsOfFile:@"圖片文件的全路徑"];
      • 使用場合:圖片比較大、使用頻率較小
      • 不需要緩存的圖片不能放在Images.xcassets
    • 放在Images.xcassets裏面的圖片,只能通過圖片名去加載圖片
  • 延遲做一些事情

[abc performSelector:@selector(stand:) withObject:@"123" afterDelay:10];
// 10s後自動調用abc的stand:方法,並且傳遞@"123"參數
  • 音頻文件的簡單播放
// 創建一個音頻文件的URL(URL就是文件路徑對象)
NSURL *url = [[NSBundle mainBundle] URLForResource:@"音頻文件名" withExtension:@"音頻文件的擴展名"];
// 創建播放器
self.player = [AVPlayer playerWithURL:url];
// 播放
[self.player play];
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章