Ios 在iphone/ipad中自动调整子视图的大小?
我有一个视图(将其命名为“MyView”),其中我有4个子视图-例如2个UIImageView,2个UILabel。我必须将此视图放置在其他视图中(如果需要)。放置MyView时,我必须给出一个框架(任何框架)。根据给定给“MyView”的框架,子视图应根据位置和大小进行调整(根据原始位置和大小自动调整)。 如果我从“MyView”中删除4个子视图中的任何一个子视图,其余3个子视图应在“MyView”中自动调整。我应在不使用“AutoLayout”的情况下实现这一点,以支持旧版本。 我在IB中使用了AutoresizingMask属性,但没有得到预期的结果Ios 在iphone/ipad中自动调整子视图的大小?,ios,objective-c,xcode,autoresizingmask,Ios,Objective C,Xcode,Autoresizingmask,我有一个视图(将其命名为“MyView”),其中我有4个子视图-例如2个UIImageView,2个UILabel。我必须将此视图放置在其他视图中(如果需要)。放置MyView时,我必须给出一个框架(任何框架)。根据给定给“MyView”的框架,子视图应根据位置和大小进行调整(根据原始位置和大小自动调整)。 如果我从“MyView”中删除4个子视图中的任何一个子视图,其余3个子视图应在“MyView”中自动调整。我应在不使用“AutoLayout”的情况下实现这一点,以支持旧版本。 我在IB中使
有谁能帮助我实现这一点。没有自动布局,您无法完成任何现成的足够复杂的布局 您必须为
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;
...
}