New file |
| | |
| | | /************************************************************ |
| | | * * 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+Location.h" |
| | | |
| | | @implementation EaseBubbleView (Location) |
| | | |
| | | - (void)layoutSubviews { |
| | | [super layoutSubviews]; |
| | | // |
| | | // CGFloat availableLabelWidth = self.frame.size.width; |
| | | // self.locationLabel.preferredMaxLayoutWidth = availableLabelWidth - 30; |
| | | // |
| | | // [super layoutSubviews]; |
| | | } |
| | | |
| | | #pragma mark - private |
| | | |
| | | - (void)_setupLocationBubbleMarginConstraints |
| | | { |
| | | NSLayoutConstraint *marginTopConstraint = [NSLayoutConstraint constraintWithItem:self.locationImageView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeTop multiplier:1.0 constant:self.margin.top]; |
| | | NSLayoutConstraint *marginBottomConstraint = [NSLayoutConstraint constraintWithItem:self.locationImageView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:-self.margin.bottom]; |
| | | NSLayoutConstraint *marginLeftConstraint = [NSLayoutConstraint constraintWithItem:self.locationImageView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeRight multiplier:1.0 constant:-self.margin.right]; |
| | | NSLayoutConstraint *marginRightConstraint = [NSLayoutConstraint constraintWithItem:self.locationImageView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.backgroundImageView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:self.margin.left]; |
| | | |
| | | [self.marginConstraints removeAllObjects]; |
| | | [self.marginConstraints addObject:marginTopConstraint]; |
| | | [self.marginConstraints addObject:marginBottomConstraint]; |
| | | [self.marginConstraints addObject:marginLeftConstraint]; |
| | | [self.marginConstraints addObject:marginRightConstraint]; |
| | | |
| | | [self addConstraints:self.marginConstraints]; |
| | | } |
| | | |
| | | - (void)_setupLocationBubbleConstraints |
| | | { |
| | | [self _setupLocationBubbleMarginConstraints]; |
| | | |
| | | [self addConstraint:[NSLayoutConstraint constraintWithItem:self.locationLabel attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.locationImageView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]]; |
| | | [self addConstraint:[NSLayoutConstraint constraintWithItem:self.locationLabel attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.locationImageView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0]]; |
| | | [self addConstraint:[NSLayoutConstraint constraintWithItem:self.locationLabel attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.locationImageView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0]]; |
| | | [self addConstraint:[NSLayoutConstraint constraintWithItem:self.locationLabel attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.locationImageView attribute:NSLayoutAttributeHeight multiplier:0.3 constant:0]]; |
| | | } |
| | | |
| | | #pragma mark - public |
| | | |
| | | - (void)setupLocationBubbleView |
| | | { |
| | | self.locationImageView = [[UIImageView alloc] init]; |
| | | self.locationImageView.translatesAutoresizingMaskIntoConstraints = NO; |
| | | self.locationImageView.backgroundColor = [UIColor clearColor]; |
| | | self.locationImageView.clipsToBounds = YES; |
| | | [self.backgroundImageView addSubview:self.locationImageView]; |
| | | |
| | | self.locationLabel = [[UILabel alloc] init]; |
| | | self.locationLabel.translatesAutoresizingMaskIntoConstraints = NO; |
| | | self.locationLabel.numberOfLines = 2; |
| | | self.locationLabel.backgroundColor = [UIColor colorWithWhite:0.3 alpha:0.8]; |
| | | // self.locationLabel.preferredMaxLayoutWidth = 0.0f; |
| | | [self.locationImageView addSubview:self.locationLabel]; |
| | | |
| | | [self _setupLocationBubbleConstraints]; |
| | | } |
| | | |
| | | - (void)updateLocationMargin:(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 _setupLocationBubbleMarginConstraints]; |
| | | } |
| | | |
| | | @end |