1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-03 09:57:46 +01:00
Telegram/Telegraph/TGAttachmentMenuCell.m
2016-02-25 01:03:51 +01:00

56 lines
2.1 KiB
Objective-C

#import "TGAttachmentMenuCell.h"
#import "TGMenuSheetView.h"
const CGFloat TGAttachmentMenuCellCornerRadius = 5.5f;
@implementation TGAttachmentMenuCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
self.clipsToBounds = true;
if (TGMenuSheetUseEffectView)
{
self.backgroundColor = [UIColor clearColor];
self.layer.cornerRadius = TGAttachmentMenuCellCornerRadius;
}
else
{
self.backgroundColor = [UIColor whiteColor];
static dispatch_once_t onceToken;
static UIImage *cornersImage;
dispatch_once(&onceToken, ^
{
CGRect rect = CGRectMake(0, 0, TGAttachmentMenuCellCornerRadius * 2 + 1.0f, TGAttachmentMenuCellCornerRadius * 2 + 1.0f);
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextFillRect(context, rect);
CGContextSetBlendMode(context, kCGBlendModeClear);
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
CGContextFillEllipseInRect(context, rect);
cornersImage = [UIGraphicsGetImageFromCurrentImageContext() resizableImageWithCapInsets:UIEdgeInsetsMake(TGAttachmentMenuCellCornerRadius, TGAttachmentMenuCellCornerRadius, TGAttachmentMenuCellCornerRadius, TGAttachmentMenuCellCornerRadius)];
UIGraphicsEndImageContext();
});
_cornersView = [[UIImageView alloc] initWithImage:cornersImage];
_cornersView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
_cornersView.frame = self.bounds;
[self addSubview:_cornersView];
}
}
return self;
}
@end