美文网首页
KVC/KVO 简单理解

KVC/KVO 简单理解

作者: 舒耀 | 来源:发表于2016-04-22 10:06 被阅读55次

    KVC-键值编码,如何使用是关键,其实就是利用KVC动态的取值和设值是最基本的用途;对于类里的私有属性,Objective-C是无法直接访问的,但是KVC是可以的;结合Runtime修改基本控件的属性,比如UITextField改变其placeHolder的颜色值,但是不清楚他的属性值怎么办?Runtime就可以实现

    let count:UnsafeMutablePointer<UInt32> =  UnsafeMutablePointer<UInt32>()
    var properties = class_copyIvarList(UITextField.self, count)
    while properties.memory.debugDescription !=  "0x0000000000000000"{
        let t = ivar_getName(properties.memory)
        let n = NSString(CString: t, encoding: NSUTF8StringEncoding)
        print(n)                                                         //打印出所有属性,这里我用了Swift语言
        properties = properties.successor()
    }
    
    //上面省略了部分属性
    Optional(_disabledBackgroundView)
    Optional(_systemBackgroundView)
    Optional(_floatingContentView)
    Optional(_contentBackdropView)
    Optional(_fieldEditorBackgroundView)
    Optional(_fieldEditorEffectView)
    Optional(_displayLabel)
    Optional(_placeholderLabel)                                         //这个正是我想要修改的属性。
    Optional(_dictationLabel)
    Optional(_suffixLabel)
    Optional(_prefixLabel)
    Optional(_iconView)
    //下面省略了部分属性
    

    可以从里面看到其他还有很多东西可以修改,运用KVC设值可以获得自己想要的效果。

    KVO就看看这篇简书吧:http://www.jianshu.com/p/e59bb8f59302

    相关文章

      网友评论

          本文标题:KVC/KVO 简单理解

          本文链接:https://www.haomeiwen.com/subject/tofxrttx.html