Skip to content

Commit 019bc73

Browse files
author
Mario Hahn
committed
Added Customization to Truncation string
1 parent eecc9da commit 019bc73

File tree

10 files changed

+48
-25
lines changed

10 files changed

+48
-25
lines changed

MHVideoPhotoGallery.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
1414
}
1515

1616
s.dependency 'SDWebImage'
17-
s.dependency 'TTTAttributedLabel'
17+
s.dependency 'TTTAttributedLabel', '1.13.3'
1818
s.dependency 'Masonry'
1919

2020
s.frameworks = 'MessageUI','Social', 'ImageIO', 'QuartzCore', 'Accelerate','CoreMedia', 'AVFoundation','MediaPlayer'

MHVideoPhotoGallery/ExampleViewControllerCollectionViewInTableView.m

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,25 @@ - (void)viewDidLoad
6363
MHGalleryItem *tailored3 = [MHGalleryItem.alloc initWithURL:@"https://dl.dropboxusercontent.com/u/17911939/momu%26meParty.mp4"
6464
galleryType:MHGalleryTypeVideo];
6565

66+
NSShadow *shadow = [[NSShadow alloc] init];
67+
shadow.shadowColor = [UIColor blackColor];
68+
shadow.shadowBlurRadius = 0.0;
69+
shadow.shadowOffset = CGSizeMake(0.0, 2.0);
6670

6771
NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:@"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."];
6872

69-
[string setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15],NSForegroundColorAttributeName : UIColor.whiteColor} range:NSMakeRange(0, string.length)];
70-
73+
[string setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15],
74+
NSForegroundColorAttributeName : UIColor.whiteColor,
75+
NSShadowAttributeName : shadow}
76+
range:NSMakeRange(0, string.length)];
7177

7278

7379
NSMutableAttributedString *string2 = [[NSMutableAttributedString alloc]initWithString:@"elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."];
7480

75-
[string2 setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15],NSForegroundColorAttributeName : UIColor.whiteColor} range:NSMakeRange(0, string2.length)];
81+
[string2 setAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:15],
82+
NSForegroundColorAttributeName : UIColor.whiteColor,
83+
NSShadowAttributeName : shadow}
84+
range:NSMakeRange(0, string2.length)];
7685

7786
tailored.attributedString = string;
7887
tailored2.attributedString = string2;

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHCustomization/MHCustomization.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ typedef NS_ENUM(NSUInteger, MHBackButtonState) {
2323
@property (nonatomic) BOOL fixXValueForDismiss; //Default NO
2424
@end
2525

26-
2726
@interface MHUICustomization : NSObject
27+
@property (nonatomic) NSAttributedString *descriptionTruncationString;
2828
@property (nonatomic) UIBarStyle barStyle; //Default UIBarStyleDefault
2929
@property (nonatomic,strong) UIColor *barTintColor; //Default nil
3030
@property (nonatomic,strong) UIColor *barButtonsTintColor; //Default nil

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHCustomization/MHCustomization.m

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ - (instancetype)init{
3131
self = [super init];
3232
if (self) {
3333

34+
self.descriptionTruncationString = [self truncationString];
3435
self.barButtonsTintColor = nil;
3536
self.barStyle = UIBarStyleDefault;
3637
self.barTintColor = nil;
@@ -67,6 +68,21 @@ - (instancetype)init{
6768
return self;
6869
}
6970

71+
-(NSAttributedString*)truncationString{
72+
NSString *points = @"...";
73+
NSString *more = MHGalleryLocalizedString(@"truncate.more");
74+
NSString *wholeString = [points stringByAppendingString:more];
75+
76+
NSMutableAttributedString *truncation = [NSMutableAttributedString.alloc initWithString:wholeString attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14],NSForegroundColorAttributeName : UIColor.whiteColor}];
77+
78+
NSDictionary *attributes = @{NSFontAttributeName : [UIFont systemFontOfSize:14],
79+
NSForegroundColorAttributeName : UIApplication.sharedApplication.keyWindow.tintColor ? : UIColor.whiteColor};
80+
81+
[truncation setAttributes:attributes range:NSMakeRange(points.length, more.length)];
82+
return truncation;
83+
84+
}
85+
7086
-(void)setMHGalleryBackgroundColor:(UIColor *)color forViewMode:(MHGalleryViewMode)viewMode{
7187
[self.backgroundColorsForViewModes setObject:color forKey:[NSString stringWithFormat:@"%@",@(viewMode)]];
7288
}

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHGalleryImageViewerViewController/MHGalleryImageViewerViewController.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@ -(void)viewDidLoad{
184184
self.descriptionLabel = MHScrollViewLabel.new;
185185
self.descriptionLabel.textLabel.text = item.descriptionString;
186186
self.descriptionLabel.textLabel.labelDelegate = self;
187+
self.descriptionLabel.textLabel.UICustomization = self.UICustomization;
187188
[self.bottomSuperView addSubview:self.descriptionLabel];
188189

189190
[self.descriptionLabel mas_makeConstraints:^(MASConstraintMaker *make) {

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHGalleryLabel/MHGalleryLabel.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//
88

99
#import <TTTAttributedLabel/TTTAttributedLabel.h>
10+
#import "MHCustomization.h"
1011

1112
@class MHGalleryLabel;
1213

@@ -16,6 +17,8 @@
1617
@end
1718

1819
@interface MHGalleryLabel : TTTAttributedLabel
20+
21+
@property (nonatomic,strong) MHUICustomization *UICustomization;
1922
@property (nonatomic) BOOL wholeText;
2023
@property (nonatomic,assign) id<MHGalleryLabelDelegate> labelDelegate;
2124
@end

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHGalleryLabel/MHGalleryLabel.m

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -28,35 +28,27 @@ - (instancetype)init
2828
return self;
2929
}
3030

31-
-(void)configureLabel{
32-
31+
-(void)configureLabel{
3332
self.wholeText = NO;
34-
self.attributedTruncationToken = [self truncationString];
3533
[self addGestureRecognizer:[UITapGestureRecognizer.alloc initWithTarget:self action:@selector(tappedLabel)]];
3634
self.userInteractionEnabled = YES;
3735
}
36+
-(void)setUICustomization:(MHUICustomization *)UICustomization{
37+
_UICustomization = UICustomization;
38+
39+
self.attributedTruncationToken = [UICustomization descriptionTruncationString];
40+
}
3841

3942
-(void)tappedLabel{
4043
self.wholeText = !self.wholeText;
4144

4245
if ([self.labelDelegate respondsToSelector:@selector(galleryLabel:wholeTextDidChange:)]) {
4346
[self.labelDelegate galleryLabel:self wholeTextDidChange:self.wholeText];
4447
}
45-
}
46-
47-
-(NSAttributedString*)truncationString{
48-
NSString *points = @"...";
49-
NSString *more = MHGalleryLocalizedString(@"truncate.more");
50-
NSString *wholeString = [points stringByAppendingString:more];
51-
52-
NSMutableAttributedString *truncation = [NSMutableAttributedString.alloc initWithString:wholeString attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14],NSForegroundColorAttributeName : UIColor.whiteColor}];
53-
54-
NSDictionary *attributes = @{NSFontAttributeName : [UIFont systemFontOfSize:14],
55-
NSForegroundColorAttributeName : UIApplication.sharedApplication.keyWindow.tintColor};
56-
57-
[truncation setAttributes:attributes range:NSMakeRange(points.length, more.length)];
58-
return truncation;
59-
48+
if ([self.superview isKindOfClass:MHScrollViewLabel.class] && self.wholeText) {
49+
MHScrollViewLabel *scrollView = (MHScrollViewLabel*)self.superview;
50+
[scrollView flashScrollIndicators];
51+
}
6052
}
6153

6254
-(void)setWholeText:(BOOL)wholeText{

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHGradientView/MHGradientView.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ - (void)drawRect:(CGRect)rect {
2525
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
2626

2727
NSArray* gradientBlackClearColors = @[(id)[[UIColor blackColor] colorWithAlphaComponent:0.85].CGColor,
28-
(id)[[UIColor blackColor] colorWithAlphaComponent:0.65].CGColor,
28+
(id)[[UIColor blackColor] colorWithAlphaComponent:0.70].CGColor,
2929
(id)[[UIColor blackColor] colorWithAlphaComponent:0.0].CGColor
3030
];
3131

MHVideoPhotoGallery/MMHVideoPhotoGallery/MHScrollViewLabel/MHScrollViewLabel.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ -(instancetype)initWithFrame:(CGRect)frame{
1818
self.textLabel = MHGalleryLabel.new;
1919
[self addSubview:self.textLabel];
2020

21+
self.indicatorStyle = UIScrollViewIndicatorStyleWhite;
22+
2123
[self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) {
2224
make.top.mas_equalTo(self.mas_top);
2325
make.left.mas_equalTo(self.mas_left);

Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ SPEC CHECKSUMS:
1515
SDWebImage: 1d2b1a1efda1ade1b00b6f8498865f8ddedc8a84
1616
TTTAttributedLabel: 6f3174aef8e738f44dff97c2eb7d8184f6ab6277
1717

18-
COCOAPODS: 0.39.0.beta.4
18+
COCOAPODS: 0.39.0

0 commit comments

Comments
 (0)