【问题标题】:auto resizing sub views in iphone/ipad?在 iphone/ipad 中自动调整子视图的大小?
【发布时间】:2013-04-05 18:56:17
【问题描述】:

我有一个视图(将其命名为“MyView”),其中有 4 个子视图 - 比如说 2 个 UIImageView,2 个 UILabel。我必须将此视图放置在其他视图中(需要的地方)。同时放置 MyView 我有给出一个框架(任何框架)。根据给“MyView”的框架,子视图应该按位置和大小进行调整(根据原始位置和大小自动调整)。 如果我从“MyView”中删除 4 个子视图中的任何 1 个,则其余 3 个子视图应在“MyView”中自动调整。我应该在没有“AutoLayout”的情况下实现这一点来支持旧版本。 我在 IB 中使用了 AutoresizingMask 属性,但没有得到想要的结果。

任何人都可以帮助我如何实现这一目标。

【问题讨论】:

    标签: ios objective-c xcode autoresizingmask


    【解决方案1】:

    如果没有自动布局,您将无法进行任何开箱即用的布局。

    您必须为MyView 编写一个自定义子类。然后覆盖它的 layoutSubviews(每次视图的框架发生变化时都会调用它)来重新定位和调整子视图的大小。

    @interface MyView : UIView
    @property (weak, nonatomic) IBOutlet UIImageView *iv1;
    @property (weak, nonatomic) IBOutlet UIImageView *iv2;
    @property (weak, nonatomic) IBOutlet UILabel *label1;
    @property (weak, nonatomic) IBOutlet UILabel *label2;
    //...
    @end
    
    @implementation MyView
    
    - (void)layoutSubviews
    {
        CGRect frame = self.iv1.frame;
        frame.origin.x = someValue * self.bound.size.width;
        frame.origin.y = ...;
        self.iv1.frame = frame;
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多