animateWithDuration

1.frame, bounds ,center 三者之间的关系

 frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
      bounds:该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统)
      center:该view的中心点在父view坐标系统中的位置和大小。(参照电是,父亲的坐标系统)

 

搞iOS开发的童鞋基本都会用过UIView,那他的bounds和frame两个属性也不会陌生,那这两个有什么实质性的区别呢?

先看到下面的代码你肯定就明白了一些:

-(CGRect)frame{
        return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);
}
-(CGRect)bounds{
        return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
}
很明显,bounds的原点是(0,0)点,而frame的原点却是任意的。
2.animateWithDuration

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^ _Nonnull)(void))animations completion:(void (^ _Nullable)(BOOL finished))completion     

duration 是动画的时间,而动画效果的最终位置是在animations 里面设置的。

3.CGPointMake ,CGRectMake

CGPoint: 表示一个二维坐标系中的点
CGSize: 表示一个矩形的宽度和高度
CGRect: 表示一个矩形的位置和大小

4.代码分析CGPoint: 表示一个二维坐标系中的点

- (void)show

{

    [super show];//这个show 是否需要防止在后面呢?因为[super show]将contentview 已经加载到UIViews 上面去了。

     CGRect frame = self.contentView.frame;

    

    self.contentView.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, frame.size.width, frame.size.height);

    

    [UIView animateWithDuration:0.3

                     animations:^{

                         self.contentView.frame = frame;

                     } completion:^(BOOL finished) {                  

                     }];

}


- (void)dismiss

{    [UIView animateWithDuration:0.3

                     animations:^{

                         self.contentView.frame = CGRectMake(0, [UIScreen mainScreen].bounds.size.height, self.contentView.frame.size.width, self.contentView.frame.size.height);

                     } completion:^(BOOL finished) {

                         

                         [super dismiss];

                     }];

}



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值