我目前正在制作一个使用自定义View Controller容器的应用程序.屏幕上同时显示多个视图,当轻触其中一个视图控制器时,选定的视图控制器将设置为全屏动画.在执行此操作时,选定的视图控制器子视图也会进行zoom (框架、字体大小等)但是,UILabel的字体属性不可动画化,从而导致问题.我试过多种解决方案,但都很烂.

我try 过的解决方案是:

  1. 截取较大视图的屏幕快照并设置更改动画(类似于Flipboard的操作方式)
  2. 使用Transform属性设置动画
  3. 缩小UIScrollView并在全屏显示时放大.
  4. 将adjustsFontSizeToFitWidth设置为YES,并在动画之前设置fontSize

其中一个是到目前为止最好的解决方案,但我对它并不满意.

我正在寻找其他建议,如果有人有任何或UILabel替代品,可以使用[UIView Animate..]流畅地制作动画.

下面是一个很好的示例,它类似于我希望我的UILabel做的事情: http://www.cocoawithlove.com/2010/09/zoomingviewcontroller-to-animate-uiview.html

EDIT: This code works

// Load View

self.label = [[UILabel alloc] init];
self.label.text = @"TEXT";
self.label.font = [UIFont boldSystemFontOfSize:20.0];
self.label.backgroundColor = [UIColor clearColor];

[self.label sizeToFit];

[self.view addSubview:self.label];

// Animation

self.label.font = [UIFont boldSystemFontOfSize:80.0];
self.label.transform = CGAffineTransformScale(self.label.transform, .25, .25);
[self.label sizeToFit];

[UIView animateWithDuration:1.0 animations:^{
    self.label.transform = CGAffineTransformScale(self.label.transform, 4.0, 4.0);
    self.label.center = self.view.center;
} completion:^(BOOL finished) {

    self.label.font = [UIFont boldSystemFontOfSize:80.0]; 
    self.label.transform = CGAffineTransformScale(self.label.transform, 1.0, 1.0);

    [self.label sizeToFit];

}];

推荐答案

你可以用像BELLOW这样的动画来改变UILabel的大小和字体.这里我只举了一个如何使用Transform Animation更改UILabel的字体的例子.

    yourLabel.font = [UIFont boldSystemFontOfSize:35]; // set font size which you want instead of 35
    yourLabel.transform = CGAffineTransformScale(yourLabel.transform, 0.35, 0.35); 
    [UIView animateWithDuration:1.0 animations:^{
        yourLabel.transform = CGAffineTransformScale(yourLabel.transform, 5, 5);
    }];

Ios相关问答推荐

彩色进度线--SWIFT

preferredCompactColumn作为NavigationSplitViewColumn.sidebar传递,但仍能在iOS上看到详细信息页面

不使用iOS 17修改器修改SWIFT用户界面视图

在金属中设置纹理的UV坐标以编程方式变形纹理

iphone 11 和 iphone 12 对于相同的布局显示不同的结果

如何在Swift中同时实现三个手势?

如何链式设置 AttributeContainer 的 UIKit 属性?

_SKStoreProductParameterAdNetworkSourceIdentifier未定义符号

表视图(SwiftUI)中的多列?

当 Swift 枚举具有 any existential 作为其关联值之一时,我如何使它符合 `Equatable`?

过渡动画在 iOS16 中不起作用,但在 iOS15 中起作用

添加到单个自定义视图时,Swiftui 项目会在所有视图中重复

SwiftUI DatePicker 格式在每个设备上都不一样,如何让它总是显示相同的 Select 版本?

AVPlayer 退出全屏

如何在 Swift 中旋转 UIButton 和 UILabel 的文本?

在 UITextView 中垂直居中文本

从 NSData 或 UIImage 中查找图像类型

try 在 iOS 中处理后退导航按钮操作

如何使用 swift 添加速率按钮的链接?

Xcode中的终端窗口?