zoukankan      html  css  js  c++  java
  • iOS 进阶 第六天(0402)

    0402

    通知和代理的区别
    • 代理是一对一的,只能是调用实现了协议里的方法,对象作为实现了该方法才能执行方法
    • 通知是多对多,它是通过通知中心分发
    • 通知要及时移除,如果不及时移除可能会收到多次通知,就好像C#中的事件注册多次一样.也可能(通知中心不会保留被通知的对象)是被通知的对象已经销毁,但通知中心仍保留这个通知继续通知造成野指针错误,应用可能会崩溃.
    • 同时的添加和移除很容易和KVO混在一起,只要注意addObserver和removeObserver的时候不选择forKeyPath就可以了.

    下图是个代码实例:

    移除通知:注意KVO


    键盘通知
    • UIDevice的一些通知,如下图:

        

    • 键盘通知

        


    文本框的处理

    问题1:在文本框UITextView里,光标默认贴靠在最左端,又是需要让光标离开一些距离,此时该怎么办呢?

    答:UITextView没有UIEdgeInset属性,所以不能通过设置内边距来设定.UITextView有个leftView成员,再配合leftViewModel为UITextFieldViewModelAlways,这样就可以放一个有宽度没背景色的UIView就可以了.

    问题2:既然出现了文本框,则键盘弹出右下角的文字标识肯能就要改一改,该如何改呢?

    答:每个文本框UITextView都有一个ReturnKey的属性,在那里可以设置.如果要改成自己想要的问题则需要其他知识准备. 注意:UITextView还有一个Auto-enbale Retuen Key的属性,用来决定键盘右下角按钮的可用性.

    问题3:如何监听文本框UITextView的回车事件

    答:使用代理,如下图:

    设置键盘弹出QQ聊天窗口背景色方法


    键盘弹出和收起的高度处理就要参考这个 QQ聊天06-键盘处理

  • 相关阅读:
    自定义组件要加@click方法
    绑定样式
    647. Palindromic Substrings
    215. Kth Largest Element in an Array
    448. Find All Numbers Disappeared in an Array
    287. Find the Duplicate Number
    283. Move Zeroes
    234. Palindrome Linked List
    202. Happy Number
    217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/lyandy/p/5116862.html
Copyright © 2011-2022 走看看