【问题标题】:( Autoresizing mask ) flexible width of an image with fixed height(自动调整蒙版)具有固定高度的图像的灵活宽度
【发布时间】:2011-07-07 08:55:45
【问题描述】:

我一直在玩仅使用代码而不使用 IB 构建 iPhone 界面。

现在我面临以下问题:

如何根据图像所在的主视图设置图像的宽度,并使其两侧的边距例如为 50 像素。 (它也应该与旋转一起使用,因此宽度应该是灵活的)。

我尝试使用 frame.size.width - 50 来设置大小,但是当屏幕旋转时这不起作用。我尝试的另一件事是使用自动调整大小的蒙版,但我并不完全了解它是如何工作的。

是否仍然需要为图像设置框架,或者这完全被自动调整大小的蒙版所否决?如果它被否决,我怎样才能给图像一个固定的高度和一个灵活的宽度?

我正在使用的书(高级iOS4编程)在这方面不是很清楚,我在网上找到的大多数示例都是针对界面构建器的。

感谢您的宝贵时间。

亲切的问候, 碧玉

【问题讨论】:

    标签: iphone width mask autoresize


    【解决方案1】:

    水平方向:

    • 调整大小保持固定的左/右页边距:UIViewAutoresizingFlexibleWidth
    • 保持大小和与左侧相同的距离:UIViewAutoresizingFlexibleRightMargin
    • 保持大小,保持居中:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin
    • 保持大小和与右侧相同的距离:UIViewAutoresizingFlexibleLeftMargin

    垂直:

    • 调整大小保持固定的顶部/底部边距:UIViewAutoresizingFlexibleHeight
    • 保持大小和与顶部相同的距离:UIViewAutoresizingFlexibleBottomMargin
    • 保持大小,保持居中:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin
    • 保持大小和与底部相同的距离:UIViewAutoresizingFlexibleTopMargin

    将第一部分中的一个与第二部分中的一个与| 组合在一起。例如,要让它水平调整大小并保持与顶部垂直的大小和距离相同,您可以使用UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin

    您可以使用其他组合来做一些更棘手的事情,但这些是基础。

    【讨论】:

    • 所以基本上我现在看到的......你为某个对象设置了框架。然后你指定这些值以防屏幕旋转以便它知道如何响应?
    • 是的,或者如果超级视图因任何其他原因更改大小。例如,“通话状态栏”可能会出现,导致顶级 UINavigationController 调整其内容区域的大小,或者您可以出于自己的原因更改超级视图的 frame
    • 非常感谢您。太棒了!
    【解决方案2】:

    你可能想要这个:

    [myImageView setAutoresizingMask:UIViewAutoresizingFlexibleWidth];
    

    这将使边距保持不变并调整宽度。

    【讨论】:

    • 这是我尝试做的,但是如果我想修复它,我将如何设置此图像的高度?
    • 如果不设置高度灵活,高度不会改变。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多