ios学习笔记-Lecture5:UITextView

ios学习笔记-Lecture5:UITextView、ViewController Lifecycle、NSNotification

UITextView

  • 属性
    • 作用:和UILabel类似,都是现实文字的控件。不同的是,UITextView具有:多行显示、可选择-编辑、滑动等特性。
    • 属性及方法
      @property(nonatomic,readonly,retain) NSTextStorage *textStorage
    - (void)addAttribute:(NSString *)name value:(id)value range:(NSRange)range;`
    - (void)addAttributes:(NSDictionary *)attrs range:(NSRange)range;
    - (void)removeAttribute:(NSString *)name range:(NSRange)range;
  • 设定(属性)
    • NSMutableAttributedString:NSTextStorage(IOS6之后生效)。
      通过UIKit中得NSMutableAttributedString,来设定文字和属性。这里用到NSMutableAttributedString的子类:NSTextStorage
    • UIFont:设定字体
    • UIColor:设定颜色
  • 实例
    -  声明UITextView属性:
    @property (weak, nonatomic) IBOutlet UITextView *body;
    - 更改UITextView属性:
    //更改字体轮廓线
   [self.body.textStorage addAttributes:@{NSStrokeWidthAttributeName:@-3, NSStrokeColorAttributeName : [UIColor blackColor]}  range:self.body.selectedRange]; 
   //更改字体颜色
    [self.body.textStorage addAttribute:NSForegroundColorAttributeName value:sender.backgroundColor range:self.body.selectedRange];

官方文档中得两段原文:
An NSAttributedString object manages character strings and associated sets of attributes (for example, font and kerning) that apply to individual characters or ranges of characters in the string.

The Application Kit and UIKit also provide a subclass of NSMutableAttributedString, called NSTextStorage, to provide the storage for the extended text-handling system.

View Controller Lifecycle

  • VC生命周期内会做哪些动作?动作如下:
  • Instantiated 从故事板(storyboard)会做一些初始化的动作
  • awakeFromNib
  • outlets 设定
  • viewDidLoad
    • geometry设定(几何尺寸)
    • viewWillAppear and viewWillDidAppear
    • viewWillDisappar and viewDidDisappear
    • didReceiveMemoryWaring(低内存警告)

NSNotification 广播(只是接收)

  • 接收广播动作
    • 注册并得到default广播中心:[NSNotificationCenter defaultCenter]
    • 发送信息以便于监听信息。
- (void)addObserver:(id)observer // you (the object to get notified)
    selector:(SEL)methodToInvokeIfSomethingHappens
    name:(NSString *)name // name of station (a constant somewhere)
    object:(id)sender; // whose changes you’re interested in (nil is anyone’s)
  • 关闭广播

    • 方法1:
      [center removeObserver:self];
      [center removeObserver:self name:UIContentSizeCategoryDidChangeNotification object:nil];
    • 方法2:
      使用dealloc:在其中实现 [[NSNotificationCenter defaultCenter] removeObserver:self];
  • 使用时机

    • 接收广播要在VC将要出现时(viewWillAppear)调用
    • 关闭广播在VC将要关闭时(viewWillDisappear)调用
    • 代码示例
-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferredFontsChanged:) name:UIContentSizeCategoryDidChangeNotification object:nil];
}
-(void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    [self usePreferredFonts];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIContentSizeCategoryDidChangeNotification object:nil];

}

资源
本科完整代码示例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值