环信代码分析笔记1

来源:互联网 发布:2016云计算大会 编辑:程序博客网 时间:2024/06/05 20:49

1.用通知去处理登录的事情:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(loginStateChange:)
name:KNOTIFICATION_LOGINCHANGE
object:nil];

pragma mark - private

//登陆状态改变
-(void)loginStateChange:(NSNotification *)notification
{
UINavigationController *nav = nil;

BOOL isAutoLogin = [[[EaseMob sharedInstance] chatManager] isAutoLoginEnabled];BOOL loginSuccess = [notification.object boolValue];if (isAutoLogin || loginSuccess) {//登陆成功加载主窗口控制器    //加载申请通知的数据    [[ApplyViewController shareController] loadDataSourceFromLocalDB];    if (_mainController == nil) {        _mainController = [[MainViewController alloc] init];        [_mainController networkChanged:_connectionState];        nav = [[UINavigationController alloc] initWithRootViewController:_mainController];    }else{        nav  = _mainController.navigationController;    }    // 环信UIdemo中有用到Parse,您的项目中不需要添加,可忽略此处。    [self initParse];}else{//登陆失败加载登陆页面控制器    _mainController = nil;    LoginViewController *loginController = [[LoginViewController alloc] init];    nav = [[UINavigationController alloc] initWithRootViewController:loginController];    loginController.title = NSLocalizedString(@"AppName", @"EaseMobDemo");    // 环信UIdemo中有用到Parse,您的项目中不需要添加,可忽略此处。    [self clearParse];}//设置7.0以下的导航栏if ([UIDevice currentDevice].systemVersion.floatValue < 7.0){    nav.navigationBar.barStyle = UIBarStyleDefault;    [nav.navigationBar setBackgroundImage:[UIImage imageNamed:@"titleBar"]                            forBarMetrics:UIBarMetricsDefault];    [nav.navigationBar.layer setMasksToBounds:YES];}self.window.rootViewController = nav;[nav setNavigationBarHidden:YES];[nav setNavigationBarHidden:NO];

}
2.设置导航栏的字体颜色。
if ([UIDevice currentDevice].systemVersion.floatValue >= 7.0) {
[[UINavigationBar appearance] setBarTintColor:RGBACOLOR(30, 167, 252, 1)];
[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:RGBACOLOR(245, 245, 245, 1), NSForegroundColorAttributeName, [UIFont fontWithName:@ “HelveticaNeue-CondensedBlack” size:21.0], NSFontAttributeName, nil]];

3.归档解档的对象设计

@interface ApplyEntity ()

@end

@implementation ApplyEntity

-(void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:_applicantUsername forKey:@”applicantUsername”];
[aCoder encodeObject:_applicantNick forKey:@”applicantNick”];
[aCoder encodeObject:_reason forKey:@”reason”];
[aCoder encodeObject:_receiverUsername forKey:@”receiverUsername”];
[aCoder encodeObject:_receiverNick forKey:@”receiverNick”];
[aCoder encodeObject:_style forKey:@”style”];
[aCoder encodeObject:_groupId forKey:@”groupId”];
[aCoder encodeObject:_groupSubject forKey:@”groupSubject”];
}

-(id)initWithCoder:(NSCoder *)aDecoder{
if(self = [super init]){
_applicantUsername = [aDecoder decodeObjectForKey:@”applicantUsername”];
_applicantNick = [aDecoder decodeObjectForKey:@”applicantNick”];
_reason = [aDecoder decodeObjectForKey:@”reason”];
_receiverUsername = [aDecoder decodeObjectForKey:@”receiverUsername”];
_receiverNick = [aDecoder decodeObjectForKey:@”receiverNick”];
_style = [aDecoder decodeObjectForKey:@”style”];
_groupId = [aDecoder decodeObjectForKey:@”groupId”];
_groupSubject = [aDecoder decodeObjectForKey:@”groupSubject”];

}return self;

}

@interface ApplyEntity : NSObject

@property (nonatomic, strong) NSString * applicantUsername;
@property (nonatomic, strong) NSString * applicantNick;
@property (nonatomic, strong) NSString * reason;
@property (nonatomic, strong) NSString * receiverUsername;
@property (nonatomic, strong) NSString * receiverNick;
@property (nonatomic, strong) NSNumber * style;
@property (nonatomic, strong) NSString * groupId;
@property (nonatomic, strong) NSString * groupSubject;

@end

  1. set语法:判断点相同,
    • (void)setToPoint:(CGPoint)toPoint
      {
      if (CGPointEqualToPoint(_toPoint, toPoint))return;
      if (_state == SRSlimeStateNormal) {
      _toPoint = toPoint;
      [self setNeedsDisplay];
      }
      }

5.getter

pragma mark - getter

  • (SRRefreshView *)slimeView
    {
    if (!_slimeView) {
    _slimeView = [[SRRefreshView alloc] init];
    _slimeView.delegate = self;
    _slimeView.upInset = 0;
    _slimeView.slimeMissWhenGoingBack = YES;
    _slimeView.slime.bodyColor = [UIColor grayColor];
    _slimeView.slime.skinColor = [UIColor grayColor];
    _slimeView.slime.lineWith = 1;
    _slimeView.slime.shadowBlur = 4;
    _slimeView.slime.shadowColor = [UIColor grayColor];
    _slimeView.backgroundColor = [UIColor whiteColor];
    }

    return _slimeView;
    }

0 1
原创粉丝点击