码迷,mamicode.com
首页 > 其他好文 > 详细

NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)

时间:2020-06-20 22:35:36      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:loading   父类   class   子类   sub   inf   效果   wan   属性   

在iOS开发中,UIView有一个clipsToBounds属性,可以设置UIView是否切割Subview超出本身的部分,Apple Developer文档的定义如下: 

技术图片

 

但是在Mac开发时,首先因为相关的资料在网上很少,NSView也没有这个属性,所以对于如何在NSView中实现类似于clipsToBounds的功能困扰了我很久,最终在StackOverFlow和简书上找到了相关的解决方法

1?? 通过重写wantsDefaultClipping属性 (不推荐)

参考资料:https://stackoverflow.com/questions/17793022/make-nsview-not-clip-subviews-outside-of-its-bounds/19991676#19991676

实现:对于父类和子类都要Override wantsDefaultClipping

override var wantsDefaultClipping: Bool {
       return false
}

 

2?? 推荐方法

参考资料:https://www.jianshu.com/p/42aa3f79117b

    //对于父类
    [superView setWantsLayer:true];
    superView.layer.masksToBounds = false;

    //对于子类
    [subView setWantsLayer:true];

 

搞定啦~配合上Masonry自动布局以后效果如图   技术图片

 

NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)

标签:loading   父类   class   子类   sub   inf   效果   wan   属性   

原文地址:https://www.cnblogs.com/DaiShuSs/p/13170190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!