【问题标题】:iOS - Should changing the frame of a UIImageView resize its image?iOS - 是否应该更改 UIImageView 的框架来调整其图像的大小?
【发布时间】:2011-04-10 23:30:01
【问题描述】:

有人可以明确回答这个问题吗?似乎有时更改 UIImageView 的框架会调整其图像的大小,有时则不会。

我已经加载了一个图像并用它创建了一个 UIImageView,大小约为 100x100。执行以下操作绝对没有效果:

myImageView.contentMode = UIViewContentModeScaleAspectFit;
myImageView.frame = CGRectMake(0, 0, 30, 30);

显然我想缩小图像,但它只是保持原尺寸。

编辑:如果我这样做:

myImageView.clipsToBounds = YES;

我得到了图像的 30x30 剪裁部分,但只有上角。如何将整个图像缩小到 30x30?

【问题讨论】:

    标签: iphone ipad resize uiimageview


    【解决方案1】:

    是的,你做对了。 contentMode 像这样使用应该保持图像大小在您的视图中并保留纵横比。显然,更改框架应该重新定位并调整视图大小。

    你确定没有其他东西是可疑的吗? myImageView nil 出于某种原因在这里吗? (如果是界面构建器创建的视图,插座是否已连接?)

    【讨论】:

    • 肯定不是nil,因为它出现在屏幕上,我可以在上面设置clipsToBounds。
    【解决方案2】:

    您认为这可行,但到处都有人遇到同样的问题。我唯一一次看到它的工作不是通过自动缩放,而是通过实际调整大小和重绘图像:How to scale a UIImageView proportionally?

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      试试这个:

      myImageView.bounds = CGRectMake(0, 0, 30, 30);

      我没有运气改变 UIImageView 的框架以缩放图像。请尝试更改边界

      【讨论】:

        【解决方案5】:

        老问题,但在我的情况下,问题是试图在“viewDidLoad”中为视图控制器进行修改。尝试更改“viewDidLayoutSubviews”中的框架。

        - (void)viewDidLayoutSubviews
        {
            //do uiimageview frame changing here
            ...   
        }
        

        【讨论】:

          猜你喜欢
          • 2018-02-06
          • 1970-01-01
          • 2012-09-15
          • 2013-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-11-15
          • 1970-01-01
          相关资源
          最近更新 更多