/************************************************************ * * Hyphenate CONFIDENTIAL * __________________ * Copyright (C) 2016 Hyphenate Inc. All rights reserved. * * NOTICE: All information contained herein is, and remains * the property of Hyphenate Inc. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Hyphenate Inc. */ #import "EaseBubbleView+File.h" @implementation EaseBubbleView (File) #pragma mark - private - (void)_setupFileBubbleMarginConstraints { [self.marginConstraints removeAllObjects]; //icon view NSLayoutConstraint *fileIconWithMarginTopConstraint = [NSLayoutConstraint constraintWithItem:self.fileIconView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeTop multiplier:1.0 constant:self.margin.top]; NSLayoutConstraint *fileIconWithMarginBottomConstraint = [NSLayoutConstraint constraintWithItem:self.fileIconView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-self.margin.bottom]; NSLayoutConstraint *fileIconWithMarginLeftConstraint = [NSLayoutConstraint constraintWithItem:self.fileIconView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:self.margin.left]; [self.marginConstraints addObject:fileIconWithMarginTopConstraint]; [self.marginConstraints addObject:fileIconWithMarginBottomConstraint]; [self.marginConstraints addObject:fileIconWithMarginLeftConstraint]; //name label NSLayoutConstraint *fileNameWithMarginTopConstraint = [NSLayoutConstraint constraintWithItem:self.fileNameLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeTop multiplier:1.0 constant:self.margin.top]; NSLayoutConstraint *fileNameWithMarginRightConstraint = [NSLayoutConstraint constraintWithItem:self.fileNameLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-self.margin.right]; [self.marginConstraints addObject:fileNameWithMarginTopConstraint]; [self.marginConstraints addObject:fileNameWithMarginRightConstraint]; //size label NSLayoutConstraint *fileSizeWithMarginBottomConstraint = [NSLayoutConstraint constraintWithItem:self.fileSizeLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-self.margin.bottom]; [self.marginConstraints addObject:fileSizeWithMarginBottomConstraint]; [self addConstraints:self.marginConstraints]; } - (void)_setupFileBubbleConstraints { [self _setupFileBubbleMarginConstraints]; //icon view [self addConstraint:[NSLayoutConstraint constraintWithItem:self.fileIconView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.fileIconView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0]]; [self addConstraint:[NSLayoutConstraint constraintWithItem:self.fileNameLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.fileIconView attribute:NSLayoutAttributeRight multiplier:1.0 constant:EaseMessageCellPadding]]; [self addConstraint:[NSLayoutConstraint constraintWithItem:self.fileSizeLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.fileNameLabel attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0]]; [self addConstraint:[NSLayoutConstraint constraintWithItem:self.fileSizeLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.fileNameLabel attribute:NSLayoutAttributeRight multiplier:1.0 constant:0]]; [self addConstraint:[NSLayoutConstraint constraintWithItem:self.fileSizeLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.fileNameLabel attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]]; } #pragma mark - public - (void)setupFileBubbleView { self.fileIconView = [[UIImageView alloc] init]; self.fileIconView.translatesAutoresizingMaskIntoConstraints = NO; self.fileIconView.backgroundColor = [UIColor clearColor]; self.fileIconView.contentMode = UIViewContentModeScaleAspectFit; [self.backgroundImageView addSubview:self.fileIconView]; self.fileNameLabel = [[UILabel alloc] init]; self.fileNameLabel.translatesAutoresizingMaskIntoConstraints = NO; self.fileNameLabel.backgroundColor = [UIColor clearColor]; [self.backgroundImageView addSubview:self.fileNameLabel]; self.fileSizeLabel = [[UILabel alloc] init]; self.fileSizeLabel.translatesAutoresizingMaskIntoConstraints = NO; self.fileSizeLabel.backgroundColor = [UIColor clearColor]; [self.backgroundImageView addSubview:self.fileSizeLabel]; [self _setupFileBubbleConstraints]; } - (void)updateFileMargin:(UIEdgeInsets)margin { if (_margin.top == margin.top && _margin.bottom == margin.bottom && _margin.left == margin.left && _margin.right == margin.right) { return; } _margin = margin; [self removeConstraints:self.marginConstraints]; [self _setupFileBubbleMarginConstraints]; } @end