Mik*_*ike 13 uiimageview stretched
我对UIImageView显示图像的方式感到非常失望.
我有以下代码:
UIImageView *imgview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 100)];
imgview.image = [UIImage imageNamed:@"img.JPG"];
imgview.backgroundColor = [UIColor greenColor];
imgview.contentMode = UIViewContentModeScaleAspectFit;
[self.view addSubview:imgview];
Run Code Online (Sandbox Code Playgroud)
我得到的是以下截图:
http://img26.imageshack.us/img26/3686/screenshot20130123at629.png
[图像被拉伸到UIImageView的全宽,甚至没有占据全高]
原始图片:
http://img248.imageshack.us/img248/341/screenshot20130123at638.png
Jon*_*han 34
设置contentMode后必须设置大小
[imageView setContentMode: UIViewContentModeScaleAspectFit];
imageView.frame = CGRectMake(x, y, width, height);
Run Code Online (Sandbox Code Playgroud)
我有同样的问题.在我的项目UIImage与创建imageWithCIImage:从不推崇contentMode的UIImageView它插入.
有些图像也有奇怪的属性导致同样的问题.使用Photoshop 将其转换为PNG始终适用于它们.
不与工作contentMode:
CIImage * __strong ciImage = [CIImage imageWithContentsOfURL:url];
_image = [UIImage imageWithCIImage:ciImage];
Run Code Online (Sandbox Code Playgroud)
在UIImageView似乎要调整基础上的CGImage.
您需要将CIImage渲染为CGImage,而不是将其用作UIImage.这将适用于UIViewContentModeAspectFit.
例如createCGImage:fromRect:,或者CGImage从一开始就更好地使用a .
我刚刚运行了它,你的代码工作正常。它可能与您指定 JPG 而实际上是 png 有关吗?
您还可以使用 UIViewContentModeScaleAspectFill,但请确保您的边界在视图限制内,否则外部可能会被剪裁
| 归档时间: |
|
| 查看次数: |
11477 次 |
| 最近记录: |