首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈程序员必看

    awakeFromNib小总结

    大家好,又见面了,我是全栈君 awakeFromNib 在使用IB的时候才会涉及到此方法的使用。 当.nib文件被载入的时候,会发送一个awakeFromNib的消息到.nib文件里的每一个对象,每一个对象都能够定义自己的awakeFromNib函数来响应这个消息。运行一些必要的操作。 结果如图: 第一句:通过Xcode实例化controller,但controller的类在IB中创建时调用此方法 {我看有这么说的 awakeFromNib是一个仅仅有在GUI对象被成功载入才调用的方法 当程序对Nib文件进行反序列化然后初始化时,会调用一次awakeFromNib。 可是假设你使用initWithNibName调入Nib时,awakeFromNib是不会被调用的。 这个我能够理解,但为什么是两句有点不理解,请高手不吝赐教 第四句:这句就是awakeFromNib被调用的地方了。

    61010编辑于 2022-07-18
  • 来自专栏日常技术分享

    iOS Xib 适配字体

    我的思路是这样的,通过Xib创建的视图在初始化的时候都会调用awakeFromNib方法,通过交换方法,实现为Xib适配字体。 + (void)load { Method swizeeMethod = class_getInstanceMethod([UILabel class], @selector(d_awakeFromNib )); Method originalMethod = class_getInstanceMethod([UILabel class], @selector(awakeFromNib)); method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); } } - (void)d_awakeFromNib fontWithDescriptor:self.font.fontDescriptor size:self.font.pointSize * scaleSize]; [self d_awakeFromNib

    1.6K00发布于 2019-04-18
  • 来自专栏日常技术分享

    iOS 屏幕适配

    XibScale) + (void)load { Method swizeeMethod = class_getInstanceMethod([UILabel class], @selector(d_awakeFromNib )); Method originalMethod = class_getInstanceMethod([UILabel class], @selector(awakeFromNib)); class_addMethod([UILabel class], @selector(awakeFromNib), method_getImplementation(swizeeMethod), method_getTypeEncoding method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod)); } } - (void)d_awakeFromNib self.font.fontDescriptor size:self.font.pointSize * [FitScaleHelper getScaleSize]]; [self d_awakeFromNib

    1.5K20发布于 2021-04-16
  • 来自专栏码客

    iOS开发中 xib模块化设计

    CGRect)frame{ self = [super initWithFrame:frame]; [self loadView]; return self; } -(void)awakeFromNib { [super awakeFromNib]; [self loadView]; } -(void)layoutSubviews{ [super layoutSubviews] (coder aDecoder: NSCoder) { super.init(coder: aDecoder) } override func awakeFromNib () { super.awakeFromNib() self.loadView() } override func layoutSubviews override func awakeFromNib() { super.awakeFromNib() } } ZJUserPicView.xib的File's Owner

    1K10发布于 2019-10-22
  • 来自专栏学海无涯

    iOS开发之UIView与UIViewController的生命周期总结

    super initWithCoder:aDecoder]; NSLog(@"%s", __func__); return self; } -(void)awakeFromNib { [super awakeFromNib]; NSLog(@"%s", __func__); } -(void)layoutSubviews{ super initWithCoder:aDecoder]; NSLog(@"%s", __func__); return self; } -(void)awakeFromNib { NSLog(@"%s", __func__); [super awakeFromNib]; } @end 结论总结 如果控制器是直接通过代码创建出来的,并且调用方法为 YFViewController viewDidAppear:] 如果是通过SB创建控制器,那么VC的生命周期为: -[ViewController initWithCoder:] -[ViewController awakeFromNib

    1.1K100发布于 2018-05-03
  • 来自专栏浮躁的喧嚣

    iOS-关于加载xib

    self = [super initWithCoder:aDecoder]) { } NSLog(@"%s",__func__); return self; } - (void)awakeFromNib { [super awakeFromNib]; NSLog(@"%s",__func__); } @end 通过init方法初始化自定义控件 @implementation ViewController ,如果要通过代码修改xib的内容,一般建议放在awakeFromNib方法内 控件封装 一般封装一个控件,为了让开发者方便使用,通常会在自定义的控件中编写俩个方法初始化方法,这样不管是通过init还是加载 if (self = [super initWithFrame:frame]) { [self setup]; } return self; } - (void)awakeFromNib { [super awakeFromNib]; [self setup]; } - (void)setup{ [self setBackgroundColor:[UIColor

    68110编辑于 2023-11-22
  • 来自专栏慎独

    UIViewController生命周期分析

    { [super awakeFromNib]; NSLog(@"FirstVC awakeFromNib"); } 请注意:为了保证代码顺利执行,且保证模拟器顺利加载ViewController 我试过去掉所有的[super viewxxxx]代码,控制台打印如下 2016-03-24 10:31:28.328 SIMAlbum[33599:524075] FirstVC awakeFromNib 2016-03-24 10:31:28.333 SIMAlbum[33599:524075] SecondView awakeFromNib 2016-03-24 10:31:28.771 SIMAlbum 2016-03-24 10:55:17.506 SIMAlbum[35103:546098] SecondView awakeFromNib 2016-03-24 10:55:17.625 SIMAlbum 接下来push进第二个viewController: 2016-03-24 10:55:38.848 SIMAlbum[35103:546098] SecondView awakeFromNib 2016

    1.1K40发布于 2018-06-01
  • 来自专栏日常技术分享

    iOS TableViewCell中的KVO的使用

    但是还有个方法可以实现那个就是KVO #import "MessageCell.h" @implementation MessageCell - (void)awakeFromNib { [ super awakeFromNib]; // Initialization code self.bradgeView.layer.masksToBounds = YES; self.bradgeView.layer.cornerRadius

    1.4K20发布于 2020-02-13
  • 来自专栏艳艳代码杂货店

    OS 圆角图片

    initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier中修改属性,因为根本不会调用该方法,但是会调用awakeFromNib - (void)awakeFromNib { //UIView->CALayer 下边两个要一起设置 self.appImageView.layer.cornerRadius

    1.3K00发布于 2021-10-30
  • 来自专栏iOS开发~

    iOS_Runtime是什么?原理?作用?怎么实现weak?使用

    bySwizzledSelector:@selector(mo_InitWithFrame:)]; [self methodSwizzlingWithOriginalSelector:@selector(awakeFromNib ) bySwizzledSelector:@selector(mo_AwakeFromNib)]; }); } - (instancetype)mo_Init { id __self = [self Zapfino" size:self.font.pointSize]; if (font) { self.font = font; } return __self; } - (void)mo_AwakeFromNib { [self mo_AwakeFromNib]; UIFont *font = [UIFont fontWithName:@"Zapfino" size:self.font.pointSize

    76220编辑于 2022-07-20
  • 来自专栏移动端开发

    Swift 2.0 自定义cell和不同风格的cell

    self.contentView.bounds.height) self.contentView .addSubview(oneImage) } override func awakeFromNib () { super.awakeFromNib() // Initialization co } override func setSelected

    1.3K60发布于 2018-01-09
  • 来自专栏iOS开发~

    iOS_指定初始化方法Designated Initializer和非指定初始化方法Secondary Initializer

    initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { // 仅包含了xib里设置的数据,在初始化后会调用awakeFromNib 方法,我们需要把额外初始化动作写在这里 } - (void)awakeFromNib { [super awakeFromNib]; [self someInit]; } - (void)someInit self.name = @""; } 补充: 不同的数据源: -NSKeyUnarchiver:归档文件初始化,包含了整个对象的数据 -UINibDecoder:仅包含了xib里设置的数据,在初始化后会调用awakeFromNib

    80830编辑于 2022-07-20
  • 来自专栏全栈程序员必看

    IOS本地化应用

    method [self localizeNibObject]; // this actually calls the original awakeFromNib (and not localizeNibObject ) because we did some method swizzling } +(void)load { // Autoload : swizzle -awakeFromNib with localizeNibObject = class_getInstanceMethod([NSObject class], @selector(localizeNibObject)); Method awakeFromNib = class_getInstanceMethod([NSObject class], @selector(awakeFromNib)); method_exchangeImplementations (awakeFromNib, localizeNibObject); } @end /////////////////////////////////////////////////////////

    1.4K00编辑于 2022-07-05
  • 来自专栏iOS 开发杂谈

    App的生命周期

    ); if (self = [super initWithCoder:aDecoder]) { } return self; } // xib 加载 完成 - (void)awakeFromNib { [super awakeFromNib]; NSLog(@"%s", __FUNCTION__); } // 加载视图(默认从nib) - (void)loadView { awakeFromNibawakeFromNib方法被调用时,所有视图的outlet和action已经连接,但还没有被确定,这个方法可以算作适合视图控制器的实例化配合一起使用的,因为有些需要根据用户喜好来进行设置的内容 ,无法存在storyBoard或xib中,所以可以在awakeFromNib方法中被加载进来。 这是它与awakeFromNib方法的一个区别。 假设我们在处理内存警告时释放view属性:self.view = nil。因此loadView方法在视图控制器的生命周期内可能被调用多次。

    1.6K10发布于 2018-09-11
  • 来自专栏大宇笔记

    swift 类似高德地图和58同城上下滑动view

    bottionY = 0.0 //最低值 var currentY = 0.0 //当前的Y值 let maxtop = 80.0 override func awakeFromNib () { super.awakeFromNib() countY() addPanRecoginer() addTapRecoginer(

    1.3K20发布于 2019-01-15
  • 来自专栏小黑娃Henry

    UIViewController声明周期-iOS11新增UIViewController声明周期-iOS11新增

    init(coder:) has not been implemented") } //只有UIView且xib时才会调用该方法 override class func awakeFromNib () { super.awakeFromNib() print(#function) } //加载vc中的view。

    88620发布于 2021-08-09
  • 来自专栏技术之路

    【swift学习笔记】三.使用xib自定义UITableViewCell

    override func awakeFromNib() { super.awakeFromNib() // Initialization code cellImg.layer.borderWidth

    2.5K70发布于 2018-01-31
  • 来自专栏梧雨北辰的开发录

    iOS表视图单元格高度自适应

    修改的方法是如下; - (void)awakeFromNib { [super awakeFromNib]; //awakeFromNib方法中添加约束 [self setupConstraints

    2.7K70发布于 2018-04-24
  • 来自专栏macOS 开发学习

    macOS 开发基础教程视频 - 理解bounds本质

    NSColor.lightGray.set() NSRectFill(dirtyRect) // Drawing code here. } override func awakeFromNib () { super.awakeFromNib() let pan = NSPanGestureRecognizer(target: self, action: #selector

    1.3K40发布于 2018-08-23
  • 来自专栏iOS开发干货分享

    抛弃UITableView,让所有列表页不再难构建

    override func awakeFromNib() { super.awakeFromNib() self.avatarView.layer.cornerRadius override func awakeFromNib() { super.awakeFromNib() // Initialization code } static override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func awakeFromNib() { super.awakeFromNib() collectionView.register(UINib(nibName

    2.2K30发布于 2019-06-14
领券