缩放视图及其所有内容

时间:2015-02-12 00:27:54

标签: ios scale layoutsubviews

我想知道是否有办法扩展UIView及其所有子视图。

当我说缩放时,我不只是在谈论帧,我不想扩展所有字体,所以也是字体。

目前我手动完成:

-(void)setScale:(float)scale
{
    // Apply scale on all subviews
    myLabel.font = [UIFont myFontWithSize:baseSize*scale];
    [myButton setScale:scale]
    [myCustomView1 setScale:scale]
    [myCustomView2 setScale:scale]
}
-(void)layoutSubviews
{
    // Apply scale on layout
    myIcon.frame = CGRectMake(posX, posY, baseW*scale, baseH*scale);

    [...]
}

但必须在我的所有视图中定义setScale方法,这非常繁琐。

当我不想扩展用UIWebView显示的一些html文本时,我遇到了一些问题,这个内容不能那么容易缩放......

我也尝试过另一种方式:当我的视图被缩放时,它不接受userInteraction所以我尝试拍摄快照,图像更容易扩展。 但它对我的iphone内存来说太沉重了,特别是当我不想扩展的视图是数百个uicollectionviewCells时。

有没有更快的方法呢?

1 个答案:

答案 0 :(得分:0)

您可以将缩放变换应用于顶级视图。

例如,这会将视图中的所有内容缩放1.5倍(大50%):

view.transform = CGAffineTransformMakeScale(1.5, 1.5);