在不缩放 UIImage 的情况下调整 UIImageView 的大小
Resizing UIImageView without scaling UIImage
我有一个显示 UIImage
的 UIImageView
,内容模式设置为 UIContentModeScaleAspectFit
。图像视图与屏幕一样宽。我想在不改变图像位置和比例的情况下调整图像视图的大小。因此,在调整大小后,UIImage 几乎仍处于相同位置并且实际上仍与屏幕宽度相同,但由于图像视图调整大小而不完全可见。
我尝试使用 UIContentModeLeft
,同时从右侧调整大小,以固定 UIImage
位置,但我的图像不像我使用 UIContentModeScaleAspectFit
时那样处于全分辨率。
我对此一窍不通。我可能需要使用 CGImage 或 CIImage,但我不知道从哪里开始。
将要显示的图像设置为视图的背景,而不是源图像。
您可以使用:
yourImageView.background = [UIColor colorWithPatternImage:[UIImage imageNamed:@"nameOfTheImageYouWantToDisplay"]];
我设法解决了我的问题。这是我所做的:
- 创建一个
UIView
并在其中添加一个 UIImageView
子视图
- 将图像视图内容模式设置为
UIContentModeScaleAspectFit
- 使用
[[UIScreen mainScreen] bounds]
将图像视图框架定义到屏幕
setClipsToBounds = YES
到 UIView
现在,在调整大小时,imageview 不会缩放,因为它的框架被定义为与屏幕一样大,setClipsToBounds:
确保我看不到 UIView 之外的图像部分帧.
我有一个显示 UIImage
的 UIImageView
,内容模式设置为 UIContentModeScaleAspectFit
。图像视图与屏幕一样宽。我想在不改变图像位置和比例的情况下调整图像视图的大小。因此,在调整大小后,UIImage 几乎仍处于相同位置并且实际上仍与屏幕宽度相同,但由于图像视图调整大小而不完全可见。
我尝试使用 UIContentModeLeft
,同时从右侧调整大小,以固定 UIImage
位置,但我的图像不像我使用 UIContentModeScaleAspectFit
时那样处于全分辨率。
我对此一窍不通。我可能需要使用 CGImage 或 CIImage,但我不知道从哪里开始。
将要显示的图像设置为视图的背景,而不是源图像。
您可以使用:
yourImageView.background = [UIColor colorWithPatternImage:[UIImage imageNamed:@"nameOfTheImageYouWantToDisplay"]];
我设法解决了我的问题。这是我所做的:
- 创建一个
UIView
并在其中添加一个UIImageView
子视图 - 将图像视图内容模式设置为
UIContentModeScaleAspectFit
- 使用
[[UIScreen mainScreen] bounds]
将图像视图框架定义到屏幕
setClipsToBounds = YES
到UIView
现在,在调整大小时,imageview 不会缩放,因为它的框架被定义为与屏幕一样大,setClipsToBounds:
确保我看不到 UIView 之外的图像部分帧.