day4

来源:互联网 发布:淘宝的微波炉是真品吗 编辑:程序博客网 时间:2024/04/29 16:38

修改UITextField的占位文字颜色

  • 富文本属性
@property(nullable, nonatomic,copy)   NSAttributedString     *attributedPlaceholder;
  • 重写方法
- (void)drawPlaceholderInRect:(CGRect)rect;
  • KVC
[self setValue:xmg_placeholderColor forKeyPath:@"placeholderLabel.textColor"];

监听UITextField的【开始编辑】和【结束编辑】事件

addTarget:

[self addTarget:self action:@selector(editingDidBegin) forControlEvents:UIControlEventEditingDidBegin];[self addTarget:self action:@selector(editingDidEnd) forControlEvents:UIControlEventEditingDidEnd];

delegate

#pragma mark - <UITextFieldDelegate>///**// *  在开始编辑之前会调用这个方法// *// *  @return YES:可以开始编辑,NO:不允许开始编辑// *///- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField//{//    XMGLogFunc//    return YES;//}/** *  已经开始编辑后会调用这个方法 */- (void)textFieldDidBeginEditing:(UITextField *)textField{    self.xmg_placeholderColor = self.textColor;}/** *  已经结束编辑后会调用这个方法 */- (void)textFieldDidEndEditing:(UITextField *)textField{    self.xmg_placeholderColor = [UIColor grayColor];}

通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(beginEditing:) name:UITextFieldTextDidBeginEditingNotification object:self];[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endEditing) name:UITextFieldTextDidEndEditingNotification object:self];

内部的特性(重写内部的某些方法)

/** *  开始编辑 */- (BOOL)becomeFirstResponder{    self.xmg_placeholderColor = self.textColor;    return [super becomeFirstResponder];}/** *  结束编辑 */- (BOOL)resignFirstResponder{    self.xmg_placeholderColor = [UIColor grayColor];    return [super resignFirstResponder];}

AFN的使用建议

  • 子类化AFHTTPSessionManager
@interface XMGHTTPSessionManager : AFHTTPSessionManager@end@implementation XMGHTTPSessionManager- (instancetype)initWithBaseURL:(NSURL *)url sessionConfiguration:(NSURLSessionConfiguration *)configuration{    if (self = [super initWithBaseURL:url sessionConfiguration:configuration]) {//        self.securityPolicy = ...;//        self.responseSerializer = ...;//        self.requestSerializer = ...;    }    return self;}@end
  • 拥有Manager对象,统一管理所有请求
/** 请求管理者 */@property (nonatomic, weak) XMGHTTPSessionManager *manager;#pragma mark - 懒加载- (XMGHTTPSessionManager *)manager{    if (!_manager) {        _manager = [XMGHTTPSessionManager manager];    }    return _manager;}
  • 使用统一的manager对象发请求(在success和failure中,使用weakSelf来访问)
[self.manager GET:@"http://api.budejie.com/api/api_open.php" parameters:params success:^(NSURLSessionDataTask * _Nonnull task, NSArray * _Nonnull responseObject) {    // 隐藏弹框    [SVProgressHUD dismiss];} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {    if (error.code == NSURLErrorCancelled) {        // 取消了任务        return;    }    // 提示错误信息    [SVProgressHUD showErrorWithStatus:@"网络繁忙,请稍后再试!"];}];

使用AFN取消请求

for (NSURLSessionTask *task in self.manager.tasks) {    [task cancel];}[self.manager.tasks makeObjectsPerformSelector:@selector(cancel)];[self.manager invalidateSessionCancelingTasks:YES];

Xcode的插件安装路径

/Users/用户名/Library/Application Support/Developer/Shared/Xcode/Plug-ins
0 0
原创粉丝点击