【问题标题】:Scaling a view and all its contents缩放视图及其所有内容
【发布时间】:2015-04-12 13:59:03
【问题描述】:

我想知道是否有办法缩放 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 时。

有没有更快的方法?

【问题讨论】:

    标签: ios scale layoutsubviews


    【解决方案1】:

    您可以对顶层视图应用缩放变换。

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

    view.transform = CGAffineTransformMakeScale(1.5, 1.5);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多