详解CALayer的anchorPoint和position

详解CALayer的anchorPoint和position - 简书

这将是你最后一次纠结position与anchorPoint!

UIView.transform的高级玩法 + 位置计算:UIView.transform的高级玩法 - 掘金

//
//  ViewController.swift
//  UIView 绕定点旋转
//
//  Created by Mengduan on 2023/5/5.
//

//分清楚anchorPoint 和 position 的区别 :anchorPoint是相对于自己本身的锚点 ,就像是一个图钉 钉着,其范围是[0,0]到[1,1],分别位于view的左上到右下,而position是相对于父视图的锚点,范围看父视图,表示在父视图上的锚点位置。

//要想改变view的anchorPoint而不改变frame 需要先设置anchorPoint 再设置frame 因为anchorPoint 和 position都会改变frame


import UIKit

class ViewController: UIViewController {
    lazy var sonView : UIView = {
        let sonView = UIView()
        sonView.layer.anchorPoint = CGPointMake(0,0)
        sonView.frame = CGRect(x: 100, y: 100, width: 50, height: 50)
        sonView.backgroundColor = .systemBlue
        return sonView
    }()
    
    lazy var secondView : UIView = {
       let view = UIView(frame: CGRect(x: 30, y: 100, width: 50, height: 50))
        view.backgroundColor = .systemRed
        return view
    }()

    override func viewDidLoad() {
        super.viewDidLoad()
        configUI()
        changedUI()
    }

    
    func configUI(){
        self.view.addSubview(secondView)
        self.view.addSubview(sonView)
    }
    
    func changedUI(){
        UIView.animate(withDuration: 4, delay: 0, animations: {
            self.sonView.transform = CGAffineTransform(rotationAngle: 3.14/4)
        })
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值