mirror of
https://github.com/danog/Telegram.git
synced 2024-12-02 09:27:55 +01:00
94 lines
2.1 KiB
Objective-C
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
|