`
sxtygyxy
  • 浏览: 2664 次
社区版块
存档分类
最新评论

layoutSubviews

    博客分类:
  • Ios
阅读更多
layoutSubviews是UIView中的属性方法,即只要继承于UIView,就可以使用这个方法,这个方法也很强大,以下是他的触发时机:


1、init初始化不会触发layoutSubviews
2、addSubview会触发layoutSubviews
3、设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化
4、滚动一个UIScrollView会触发layoutSubviews
5、旋转Screen会触发父UIView上的layoutSubviews事件
6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件


在这些触发情况下,我们就可以妙用他,比如说改变数据等等,这是个很不错的方法
而且我们也可以手动调用,即         

[self setNeedsLayout];
注意:调用layoutSubviews,也需要调用它的父类方法,即          

[super layoutSubviews]
传说如果不调用的话会出现奇怪的问题。
分享到:
评论

相关推荐

    ipad横竖屏切换解决方案

    当 UIView 设置为自动适配屏幕时,当用户旋转设备的时候,会调用 layoutSubviews 方法,我们只需重写这个方法,然后判断用户屏幕的方向。在调整每个空间的位置即可。 下面是一个简单的示例代码: ```objectivec -...

    ios-Runtime的理解和简单运用.zip

    在这个例子中,`layoutSubviews` 方法的原有实现被替换成 `swizzled_layoutSubviews`,并在调用原方法之前添加了日志输出。 总之,iOS Runtime 是Objective-C和Swift强大而灵活的特性,它提供了深入理解和控制程序...

    ios-自定义高德地图.zip

    为了自定义气泡,我们需要创建一个新的`MAAnnotationView`子类,覆盖其`- (void)layoutSubviews`方法,以绘制我们自己的视图。 ```swift import AMapFoundationKit import AMapLocationKit import AMapMapKit ...

    横向tableView

    你可以使用AutoLayout来实现这一点,或者在cell的`layoutSubviews`方法中手动设置子视图的约束。 ```swift class HorizontalTableViewCell: UITableViewCell { override func layoutSubviews() { super....

    iOSCornerRadius失效的解决方案.docx

    - 在视图控制器中重写`layoutSubviews`方法,确保在每次布局调整后都能正确设置圆角。 ```objective-c -(void)layoutSubviews { [super layoutSubviews]; [self.numberLab layoutIfNeeded]; [self.contentView...

    ios-自定义TabBar(OC、Swift).zip

    如果你需要更复杂的自定义,比如添加额外的UI元素或动画效果,可以创建一个自定义的`UITabBarController`子类,并重写`layoutSubviews`方法来绘制自定义的TabBar。 1. Objective-C: ```objc - (void)...

    iOS开发实现简单的圆形进度条显示效果

    在这个子类中,我们可以重写`layoutSubviews`方法来计算和设置圆形路径的半径,确保它始终适应视图的大小。同时,我们还需要设置`CAShapeLayer`的`strokeStart`和`strokeEnd`属性来控制进度条的起始和结束位置,从而...

    给tableview分组添加阴影效果

    - 创建自定义的UIView子类作为section header,并在其中重写`layoutSubviews`方法,在这里设置阴影效果。 - 在`layoutSubviews`中设置layer的阴影属性,例如: ```swift override func layoutSubviews() { ...

    iOS、UITableViewCell、自定义

    1. 创建UITableViewCell子类:通过继承UITableViewCell,我们可以添加自定义的UI元素,如UILabel、UIImageView、UIButton等,并在子类中重写layoutSubviews方法来布局这些元素。 2. 注册Cell:在UITableView的...

    IOS应用源码——上下有渐变效果的textView.rar

    要给它添加渐变背景,开发者通常会自定义一个继承自`UITextView`的子类,然后覆写`layoutSubviews`方法。在这个方法中,可以创建并设置`CAGradientLayer`作为`UITextView`背景层。 以下是一段可能的代码实现: ```...

    iOS自定义控件开发梳理总结

    为了确保视图在大小改变时仍保持圆形,我们需要重写`layoutSubviews`方法,以调整子视图的frame和圆角半径。此外,还可以提供一个对外接口方法,如`configeWithImage:`,用于设置自定义控件的图像。 2. **使用xib...

    UINavigationBar Category

    完成Category的编写后,我们需要在项目的适当位置导入并使用这个Category,这样UINavigationBar就会使用我们自定义的`layoutSubviews`方法,从而解决了leftBarButtonItem点击范围过大的问题。 总结来说,通过...

    ios-TableviewGroup阴影加圆角.zip

    在这个子类中,我们可以重写`layoutSubviews`方法,设置视图的layer属性,包括`cornerRadius`来实现圆角效果。例如: ```swift override func layoutSubviews() { super.layoutSubviews() layer.cornerRadius = ...

    ios-为任意视图添加小圆点.zip

    override func layoutSubviews() { super.layoutSubviews() numberLabel.frame = CGRect(x: bounds.width / 2 - numberLabel.intrinsicContentSize.width / 2, y: bounds.height / 2 - numberLabel....

    ios-UIView设置局部阴影,左右上下,左右底部阴影.zip

    为了实现这样的效果,我们需要自定义UIView的子类,并重写`layoutSubviews`方法。在这个方法中,我们可以动态地调整阴影的边缘和偏移,以实现局部阴影。以下是一段示例代码: ```swift class CustomView: UIView { ...

    iphone自定义工具栏

    在`layoutSubviews`中,我们可以添加代码来实现特殊的效果,比如动态改变按钮的大小、位置、透明度,或者添加动画。此外,我们还可以添加自定义的视图,比如图片或者自定义的视图控制器,来实现更复杂的功能。 为了...

    ios-RoundTableviewCell.zip

    对于UITableView的cell,我们可以在`layoutSubviews`方法中设置contentView和backgroundView的layer.cornerRadius属性,确保在cell的尺寸改变时,圆角依然正确显示。同时,别忘了开启`masksToBounds`属性,这样子...

    tableView 滚动statusbar 颜色改变和顶部图片放大

    在这个例子中,`layoutSubviews()`方法会在每次tableView布局更新时被调用,包括滚动事件。我们计算了当前的滚动偏移量,并基于此调整图片的缩放比例。请注意,这只是一个基础示例,实际效果可能需要根据具体需求...

Global site tag (gtag.js) - Google Analytics