From a04f0db29cb280eb45888d3a56967cf9adc6214d Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Sun, 4 Mar 2018 11:50:14 +0300 Subject: ChatViewController --- Juick/Views/BubbleMessageCell.h | 23 +++++++++++++++++++++ Juick/Views/BubbleMessageCell.m | 43 +++++++++++++++++++++++++++++++++++++++ Juick/Views/BubbleMessageCell.xib | 29 ++++++++++++++++++-------- Juick/Views/FixedLabel.h | 13 ++++++++++++ Juick/Views/FixedLabel.m | 21 +++++++++++++++++++ 5 files changed, 120 insertions(+), 9 deletions(-) create mode 100644 Juick/Views/BubbleMessageCell.h create mode 100644 Juick/Views/BubbleMessageCell.m create mode 100644 Juick/Views/FixedLabel.h create mode 100644 Juick/Views/FixedLabel.m (limited to 'Juick/Views') diff --git a/Juick/Views/BubbleMessageCell.h b/Juick/Views/BubbleMessageCell.h new file mode 100644 index 0000000..1f5d2e9 --- /dev/null +++ b/Juick/Views/BubbleMessageCell.h @@ -0,0 +1,23 @@ +// +// BubbleMessageCell.h +// Juick +// +// Created by Vitaly Takmazov on 04/03/2018. +// Copyright © 2018 com.juick. All rights reserved. +// + +#import +#import "Message.h" +#import "FixedLabel.h" + +@import TTTAttributedLabel; + +@interface BubbleMessageCell : UITableViewCell +@property (strong, nonatomic) IBOutlet UIImageView *avatarView; +@property (strong, nonatomic) IBOutlet UILabel *unreadMarker; +@property (strong, nonatomic) IBOutlet UILabel *name; +@property (strong, nonatomic) IBOutlet FixedLabel *message; + +-(void) configureWithMessage:(Message *) message; + +@end diff --git a/Juick/Views/BubbleMessageCell.m b/Juick/Views/BubbleMessageCell.m new file mode 100644 index 0000000..b201664 --- /dev/null +++ b/Juick/Views/BubbleMessageCell.m @@ -0,0 +1,43 @@ +// +// BubbleMessageCell.m +// Juick +// +// Created by Vitaly Takmazov on 04/03/2018. +// Copyright © 2018 com.juick. All rights reserved. +// + +#import "BubbleMessageCell.h" +#import "ColorScheme.h" +@import YYWebImage; + +@implementation BubbleMessageCell + +- (void)awakeFromNib { + [super awakeFromNib]; + // Initialization code +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + // Configure the view for the selected state +} + +-(void) configureWithMessage:(Message *)message { + self.name.text = message.user.uname; + self.message.text = message.text; + self.unreadMarker.text = @""; + [self.avatarView yy_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://i.juick.com/a/%d.png", [message.user.uid intValue]]] options:YYWebImageOptionProgressiveBlur|YYWebImageOptionSetImageWithFadeAnimation]; + self.message.enabledTextCheckingTypes = NSTextCheckingTypeLink; + self.message.backgroundColor = [ColorScheme mainBackground]; + self.message.layer.cornerRadius = 4; + self.message.clipsToBounds = YES; + self.message.textInsets = UIEdgeInsetsMake(4.0f, 8.0f, 4.0f, 8.0f); +} + +-(void) attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url { + [[UIApplication sharedApplication] openURL:url options: + @{} completionHandler:nil]; +} + +@end diff --git a/Juick/Views/BubbleMessageCell.xib b/Juick/Views/BubbleMessageCell.xib index a2b6bc3..b88ab17 100644 --- a/Juick/Views/BubbleMessageCell.xib +++ b/Juick/Views/BubbleMessageCell.xib @@ -1,30 +1,38 @@ - + + + + - + + - + - + + + + + - - - - - + + + + diff --git a/Juick/Views/FixedLabel.h b/Juick/Views/FixedLabel.h new file mode 100644 index 0000000..f05ac94 --- /dev/null +++ b/Juick/Views/FixedLabel.h @@ -0,0 +1,13 @@ +// +// FixedLabel.h +// Juick +// +// Created by Vitaly Takmazov on 04/03/2018. +// Copyright © 2018 com.juick. All rights reserved. +// + +#import + +@interface FixedLabel : TTTAttributedLabel + +@end diff --git a/Juick/Views/FixedLabel.m b/Juick/Views/FixedLabel.m new file mode 100644 index 0000000..24d8648 --- /dev/null +++ b/Juick/Views/FixedLabel.m @@ -0,0 +1,21 @@ +// +// FixedLabel.m +// Juick +// +// Created by Vitaly Takmazov on 04/03/2018. +// Copyright © 2018 com.juick. All rights reserved. +// + +#import "FixedLabel.h" + +@implementation FixedLabel + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect { + // Drawing code +} +*/ + +@end -- cgit v1.2.3