iOS开发之Frame与Bounds小结

        frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)
        bounds:该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,以0,0点为起点)
        center:该view的中心点在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)


通过修改view的bounds属性可以修改本地坐标系统的原点位置,进而影响到了在本view内的子view的位置.

并且每个新申请分配空间后的view默认的bounds其实都是  {{0,0}size};

在利用bounds进行放大缩小操作的时候会默认的以其中心为参照点进行相应的操作;





另附图详细说明:


小结:

view 的frame是确定view在它的父控件super view 中的位置与尺寸。


view 的bounds可以用来帮助它的子控件subview来定位的


参考链接:

http://blog.csdn.net/mad1989/article/details/8711697

http://www.cocoachina.com/ios/20140925/9755.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS开发中,我们可以通过添加水印来给UIView添加一些额外的视觉效果。下面是一个实现的示例代码: ```swift // 创建带有水印的UIView子类 class WatermarkView: UIView { let watermarkText: String // 水印文本 init(frame: CGRect, watermarkText: String) { self.watermarkText = watermarkText super.init(frame: frame) } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func draw(_ rect: CGRect) { super.draw(rect) // 设置水印文本的属性 let attributes: [NSAttributedString.Key : Any] = [ .font: UIFont.systemFont(ofSize: 16), .foregroundColor: UIColor.white.withAlphaComponent(0.5) ] // 绘制水印文本 let watermarkString = NSAttributedString(string: watermarkText, attributes: attributes) watermarkString.draw(at: CGPoint(x: 10, y: rect.height - 30)) } } // 在ViewController中使用WatermarkView class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 创建一个带有水印的UIView并添加到当前视图控制器视图层级中 let watermarkView = WatermarkView(frame: view.bounds, watermarkText: "Watermark") view.addSubview(watermarkView) } } ``` 在上面的示例代码中,我们创建了一个名为`WatermarkView`的UIView子类。在其`draw(_ rect:)`方法中,我们使用`NSAttributedString`绘制了带有水印文本的视图。我们可以调整文本的字体和颜色等属性来满足需求。 在ViewController中,我们使用`WatermarkView`类创建了一个带有水印的UIView实例,并将其添加到当前视图控制器的视图层级中。通过这样的方式,我们可以在应用中的任何需要的位置添加水印效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值