简单ui效果实现,模仿腾讯体育点击全屏实现

本文介绍了一种通过修改视图的实际位置和大小并结合旋转变换来实现将特定视图平滑过渡到全屏状态的方法。该方法适用于iOS应用开发中需要进行视图展示模式快速切换的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果描述:

   点击屏幕上某个按钮实现将特定view 变为全屏状态

效果图:

    加载图片失败    

实现原理分析:

     思路一,这个过程实际上涉及到三个变化过程,一个是大小变化(scale),一个是位置变化(tranlation),一个是旋转(rotate),如果单纯使用三个CGAffineTransform变换,三个变换同时使用,效果之间相互影响,有问题。

      思路二,改变其真实的位置和大小 (修改view的frame),然后旋转使用CGAffineTransform变换,相当于先将要变换的view变到想要的全屏大小,并且中心点在屏幕中心,然后旋转90即可。这是比较简单的思路,下面代码即采用这种思路。

代码如下:

/**
 make specific view to full screen state

 @param view the specific view
 @param time animationg duration time
 */
- (void)makeViewFullScreenWithView:(UIView *)view andAniteTime:(CGFloat)time
{
    
    CGSize windowSize = [UIScreen mainScreen].bounds.size;
    
    [UIView animateWithDuration:time animations:^{
        
        view.frame = CGRectMake(windowSize.width / 2 - windowSize.height / 2, windowSize.height / 2 - windowSize.width / 2, windowSize.height, windowSize.width);
        
        [view setTransform:CGAffineTransformMakeRotation(M_PI_2)];
        
    }];
    
}

调用示例

- (IBAction)btnClick:(id)sender
{
    [self makeViewFullScreenWithView:self.testView andAniteTime:0.5];
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值