70 lines
2.3 KiB
Objective-C
70 lines
2.3 KiB
Objective-C
//
|
|
// MGMSMSTextView.m
|
|
// VoiceMob
|
|
//
|
|
// Created by Mr. Gecko on 10/1/10.
|
|
// Copyright (c) 2011 Mr. Gecko's Media (James Coleman). http://mrgeckosmedia.com/
|
|
//
|
|
|
|
#import "MGMSMSTextView.h"
|
|
#import <MGMUsers/MGMUsers.h>
|
|
|
|
@implementation MGMSMSTextView
|
|
- (void)awakeFromNib {
|
|
[self setBackgroundColor:[UIColor clearColor]];
|
|
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, -6.0, -3.0)];
|
|
}
|
|
|
|
- (void)setContentOffset:(CGPoint)theOffset {
|
|
if ([self isTracking] || [self isDecelerating]) {
|
|
if ([self contentSize].height>=130.0) {
|
|
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, -4.0, -3.0)];
|
|
} else {
|
|
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, -6.0, -3.0)];
|
|
}
|
|
[super setContentOffset:theOffset];
|
|
} else {
|
|
[super setContentOffset:theOffset];
|
|
if ([self contentSize].height>=130.0) {
|
|
[self setScrollEnabled:YES];
|
|
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, -2.0, -3.0)];
|
|
if (lastHeight!=[self contentSize].height) {
|
|
lastHeight = [self contentSize].height;
|
|
[self scrollRectToVisible:CGRectMake(0, [self contentSize].height-10, 320, 10) animated:NO];
|
|
[self flashScrollIndicators];
|
|
}
|
|
} else {
|
|
lastHeight = 0;
|
|
[self setScrollEnabled:NO];
|
|
[self setContentInset:UIEdgeInsetsMake(-6.0, 3.0, -6.0, -3.0)];
|
|
}
|
|
}
|
|
}
|
|
|
|
- (void)drawRect:(CGRect)theRect {
|
|
CGRect whitePathBounds = [self bounds];
|
|
CGRect pathBounds = whitePathBounds;
|
|
whitePathBounds.size.width -= 2.0;
|
|
whitePathBounds.origin.x += 1.0;
|
|
whitePathBounds.size.height -= 2.0;
|
|
whitePathBounds.origin.y += 0.7;
|
|
MGMPath *whitePath = [MGMPath pathWithRoundedRect:whitePathBounds cornerRadius:13];
|
|
[[UIColor colorWithWhite:1.0 alpha:1.0] setStroke];
|
|
[whitePath setLineWidth:2.0];
|
|
[whitePath stroke];
|
|
pathBounds.size.height -= 1.0;
|
|
MGMPath *path = [MGMPath pathWithRoundedRect:pathBounds cornerRadius:13];
|
|
[[UIColor colorWithWhite:0.95 alpha:1.0] setFill];
|
|
[[UIColor colorWithWhite:0.4 alpha:1.0] setStroke];
|
|
[path fill];
|
|
CGContextRef currentContext = UIGraphicsGetCurrentContext();
|
|
CGContextSaveGState(currentContext);
|
|
[path addClip];
|
|
CGContextAddPath(currentContext, [path CGPath]);
|
|
CGContextSetShadowWithColor(currentContext, CGSizeMake(0, 1), 3.0, [[UIColor colorWithWhite:0.0 alpha:1.0] CGColor]);
|
|
CGContextStrokePath(currentContext);
|
|
CGContextRestoreGState(currentContext);
|
|
|
|
[super drawRect:theRect];
|
|
}
|
|
@end |