Video editor fixes

This commit is contained in:
Ilya Laktyushin 2020-05-28 06:46:08 +03:00
parent ae6bc476ae
commit f5f44d9706

View File

@ -87,7 +87,7 @@ const CGFloat TGPhotoTextSelectionViewHandleSide = 30.0f;
_textView.autocorrectionType = UITextAutocorrectionTypeNo; _textView.autocorrectionType = UITextAutocorrectionTypeNo;
_textView.spellCheckingType = UITextSpellCheckingTypeNo; _textView.spellCheckingType = UITextSpellCheckingTypeNo;
_textView.font = [UIFont boldSystemFontOfSize:_baseFontSize]; _textView.font = [UIFont boldSystemFontOfSize:_baseFontSize];
_textView.frameWidthInset = floor(_baseFontSize * 0.03); // _textView.frameWidthInset = floor(_baseFontSize * 0.03);
[self setSwatch:entity.swatch]; [self setSwatch:entity.swatch];
[self setStyle:entity.style]; [self setStyle:entity.style];
@ -175,7 +175,7 @@ const CGFloat TGPhotoTextSelectionViewHandleSide = 30.0f;
{ {
_font = font; _font = font;
_textView.font = [UIFont boldSystemFontOfSize:_baseFontSize]; _textView.font = [UIFont boldSystemFontOfSize:_baseFontSize];
_textView.frameWidthInset = floor(_baseFontSize * 0.03); // _textView.frameWidthInset = floor(_baseFontSize * 0.03);
[self sizeToFit]; [self sizeToFit];
} }
@ -608,6 +608,8 @@ const CGFloat TGPhotoTextSelectionViewHandleSide = 30.0f;
NSRange range = [self characterRangeForGlyphRange:glyphsToShow actualGlyphRange:NULL]; NSRange range = [self characterRangeForGlyphRange:glyphsToShow actualGlyphRange:NULL];
NSRange glyphRange = [self glyphRangeForCharacterRange:range actualCharacterRange:NULL]; NSRange glyphRange = [self glyphRangeForCharacterRange:range actualCharacterRange:NULL];
CGContextRef context = UIGraphicsGetCurrentContext(); CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context); CGContextSaveGState(context);
CGContextTranslateCTM(context, origin.x, origin.y); CGContextTranslateCTM(context, origin.x, origin.y);
@ -620,21 +622,30 @@ const CGFloat TGPhotoTextSelectionViewHandleSide = 30.0f;
[self.rectArray removeAllObjects]; [self.rectArray removeAllObjects];
[self enumerateLineFragmentsForGlyphRange:glyphRange usingBlock:^(CGRect rect, CGRect usedRect, NSTextContainer * _Nonnull textContainer, NSRange glyphRange, BOOL * _Nonnull stop) { [self enumerateLineFragmentsForGlyphRange:glyphRange usingBlock:^(CGRect rect, CGRect usedRect, NSTextContainer * _Nonnull textContainer, NSRange glyphRange, BOOL * _Nonnull stop) {
bool ignoreRange = false;
NSString *substring = [[self.textStorage string] substringWithRange:glyphRange];
if ([substring stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]].length == 0) {
ignoreRange = true;
}
CGRect newRect = CGRectMake(usedRect.origin.x - self.frameWidthInset, usedRect.origin.y, usedRect.size.width + self.frameWidthInset * 2, usedRect.size.height); if (!ignoreRange) {
NSValue *value = [NSValue valueWithCGRect:newRect]; CGRect newRect = CGRectMake(usedRect.origin.x - self.frameWidthInset, usedRect.origin.y, usedRect.size.width + self.frameWidthInset * 2, usedRect.size.height);
[self.rectArray addObject:value]; NSValue *value = [NSValue valueWithCGRect:newRect];
[self.rectArray addObject:value];
}
}]; }];
[self preProccess]; [self preProccess];
CGRect last = CGRectNull;
for (int i = 0; i < self.rectArray.count; i ++) { for (int i = 0; i < self.rectArray.count; i ++) {
NSValue *curValue = [self.rectArray objectAtIndex:i]; NSValue *curValue = [self.rectArray objectAtIndex:i];
CGRect cur = curValue.CGRectValue; CGRect cur = curValue.CGRectValue;
_radius = cur.size.height * 0.18; _radius = cur.size.height * 0.18;
[self.path appendPath:[UIBezierPath bezierPathWithRoundedRect:cur cornerRadius:_radius]]; [self.path appendPath:[UIBezierPath bezierPathWithRoundedRect:cur cornerRadius:_radius]];
CGRect last = CGRectNull; if (i == 0) {
if (i > 0) { last = cur;
} else if (i > 0 && fabs(CGRectGetMaxY(last) - CGRectGetMinY(cur)) < 10.0) {
NSValue *lastValue = [self.rectArray objectAtIndex:i-1]; NSValue *lastValue = [self.rectArray objectAtIndex:i-1];
last = lastValue.CGRectValue; last = lastValue.CGRectValue;
CGPoint a = cur.origin; CGPoint a = cur.origin;