? ? ?UIImage *image = [UIImageimageNamed:@"image.jpg"];//這種不釋放內(nèi)存计雌,要緩存
? ? ?NSString *path = [[NSBundlemainBundle]pathForResource:@"image"ofType:@"jpg"];
? ? ?UIImage *image1 = [UIImageimageWithContentsOfFile:path];//這種會(huì)釋放內(nèi)存
? ? ?那么惠险,為UIView添加背景圖片可以有三種方法:
? ? ?1.在UIView上添加一個(gè)UIImageView
? ? ?UIImageView *imageView = [[UIImageViewalloc]initWithFrame:self.view.bounds];
? ? ?imageView.image = [[UIImageimageNamed:@"image.jpg"]stretchableImageWithLeftCapWidth:10topCapHeight:10];
? ? ?[self.viewaddSubview:imageView];
? ? ?//這種方式泌霍,如果原始圖片不小不夠,則會(huì)拉伸以滿足View的尺寸捏雌,在View釋放之后沒(méi)有內(nèi)存保留宴霸。
? ? ?2.將圖片作為UIView的背景色
? ? ?//1.imageNamed方式
? ? ?self.view.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageNamed:@"image.jpg"]];
? ? ?//2.方式
? ? ?NSString *path = [[NSBundlemainBundle]pathForResource:@"image"ofType:@"jpg"];
? ? ?self.view.backgroundColor = [UIColorcolorWithPatternImage:[UIImageimageWithContentsOfFile:path]];
? ? ?//這兩種方式都會(huì)在生成color時(shí)占用大量的內(nèi)存。如果圖片大小不夠澳泵,就會(huì)平鋪多張圖片实愚,不會(huì)去拉伸圖片以適應(yīng)View的大小。
? ? ?//在View釋放后兔辅,1中的color不會(huì)跟著釋放腊敲,而是一直存在內(nèi)存中;2中的color會(huì)跟著釋放掉维苔,當(dāng)然再次生成color時(shí)就會(huì)再次申請(qǐng)內(nèi)存碰辅。
3.其他方式(推薦)
? ? ?NSString *path = [[NSBundlemainBundle]pathForResource:@"image"ofType:@"jpg"];
? ? ?UIImage *image = [UIImageimageWithContentsOfFile:path];
? ? ?self.view.layer.contents = (id)image.CGImage;