1
0
mirror of https://github.com/danog/Telegram.git synced 2024-12-02 09:27:55 +01:00
Telegram/Telegraph/TGModernCollectionCell.m
2015-10-01 19:19:52 +03:00

94 lines
2.1 KiB
Objective-C

#import "TGModernCollectionCell.h"
#import "TGMessageModernConversationItem.h"
@interface TGModernCollectionCellLayer : CALayer
@end
@implementation TGModernCollectionCellLayer
- (void)setShouldRasterize:(BOOL)shouldRasterize
{
if (shouldRasterize)
[super setShouldRasterize:false];
}
@end
@interface TGModernCollectionCell ()
{
bool _editing;
UIView *_contentViewForBinding;
}
@end
@implementation TGModernCollectionCell
+ (Class)layerClass
{
return [TGModernCollectionCellLayer class];
}
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self != nil)
{
[self contentViewForBinding].transform = CGAffineTransformMakeRotation((float)M_PI);
self.clipsToBounds = true;
_contentViewForBinding = [[UIView alloc] initWithFrame:(CGRect){CGPointZero, frame.size}];
_contentViewForBinding.transform = CGAffineTransformMakeRotation((float)M_PI);
[self addSubview:_contentViewForBinding];
}
return self;
}
- (void)relativeBoundsUpdated:(CGRect)bounds
{
id item = _boundItem;
if (item != nil && [item conformsToProtocol:@protocol(TGModernCollectionRelativeBoundsObserver)])
{
CGRect convertedBounds = [[self contentViewForBinding] convertRect:bounds fromView:self];
[item relativeBoundsUpdated:self bounds:convertedBounds];
}
}
- (void)setEditing:(bool)editing animated:(bool)__unused animated viewStorage:(TGModernViewStorage *)__unused viewStorage
{
if (_editing != editing)
{
_editing = editing;
[self contentViewForBinding].userInteractionEnabled = !_editing;
}
}
- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)layoutAttributes
{
[super applyLayoutAttributes:layoutAttributes];
}
- (void)setFrame:(CGRect)frame
{
[super setFrame:frame];
_contentViewForBinding.frame = (CGRect){CGPointZero, frame.size};
}
- (void)setBounds:(CGRect)bounds
{
[super setBounds:bounds];
_contentViewForBinding.frame = (CGRect){CGPointZero, bounds.size};
}
- (UIView *)contentViewForBinding
{
return _contentViewForBinding;
}
@end