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
- day4
- day4
- day4
- day4
- DAY4
- DAY4
- Day4
- day4
- day4
- Day4
- Day4
- Day4
- day4
- day4
- day4
- DAY4
- Day4
- Day4
- Android 常用设计模式1 组合模式
- HDOJ 5590 ZYB's Biology
- 数学规律,一元二次方程求最大值。
- Spring的MVC相比Structs2有什么优点
- 利用switch语句解决问题
- day4
- 面向对象六原则
- 类之间的关系
- 电子或通信领域当前的主流技术及其谁会需求调查报告
- mysql一个用户SQL慢查询分析,原因及优化
- C++虚析构函数
- Android总结篇系列:Android Service
- 【PAT】1107. Social Clusters (30)
- BZOJ-3211花神游历各国 并查集+树状数组