#import "PlayerView.h" @interface PlayerView () @property(nonatomic, strong) UILabel *titleLabel; @property(nonatomic, strong) UILabel *langLabel; @property(nonatomic, strong) UILabel *cnLabel; @property(nonatomic, strong) UILabel *enLabel; @property(nonatomic, strong) UIStackView *stackView; @end @implementation PlayerView - (instancetype)init { if (self = [super init]) { self.backgroundColor = [UIColor whiteColor]; UILabel *title = [[UILabel alloc] init]; title.text = @"实时翻译"; title.font = [UIFont boldSystemFontOfSize:22]; title.textColor = [UIColor blackColor]; title.textAlignment = NSTextAlignmentCenter; title.numberOfLines = 1; self.titleLabel = title; UILabel *lang = [[UILabel alloc] init]; lang.text = @"中文(简体) -> 英语"; lang.font = [UIFont systemFontOfSize:14]; lang.textColor = [UIColor darkGrayColor]; lang.textAlignment = NSTextAlignmentLeft; lang.numberOfLines = 1; self.langLabel = lang; UILabel *cn = [[UILabel alloc] init]; cn.font = [UIFont systemFontOfSize:18]; cn.textColor = [UIColor blackColor]; cn.textAlignment = NSTextAlignmentLeft; cn.numberOfLines = 0; self.cnLabel = cn; UILabel *en = [[UILabel alloc] init]; en.font = [UIFont systemFontOfSize:18]; en.textColor = [UIColor colorWithRed:0.24 green:0.54 blue:0.90 alpha:1.0]; en.textAlignment = NSTextAlignmentLeft; en.numberOfLines = 0; self.enLabel = en; NSMutableParagraphStyle *para = [[NSMutableParagraphStyle alloc] init]; para.lineSpacing = 4; self.cnLabel.attributedText = [[NSAttributedString alloc] initWithString:@"" attributes:@{NSParagraphStyleAttributeName: para}]; self.enLabel.attributedText = [[NSAttributedString alloc] initWithString:@"" attributes:@{NSParagraphStyleAttributeName: para}]; UIStackView *stack = [[UIStackView alloc] initWithArrangedSubviews:@[self.titleLabel, self.langLabel, self.cnLabel, self.enLabel]]; stack.axis = UILayoutConstraintAxisVertical; stack.spacing = 12; stack.alignment = UIStackViewAlignmentFill; stack.distribution = UIStackViewDistributionFill; stack.translatesAutoresizingMaskIntoConstraints = NO; self.stackView = stack; self.layoutMargins = UIEdgeInsetsMake(16, 16, 16, 16); [self addSubview:self.stackView]; UILayoutGuide *guide = self.layoutMarginsGuide; [NSLayoutConstraint activateConstraints:@[ [self.stackView.topAnchor constraintEqualToAnchor:guide.topAnchor], [self.stackView.leadingAnchor constraintEqualToAnchor:guide.leadingAnchor], [self.stackView.trailingAnchor constraintEqualToAnchor:guide.trailingAnchor], [self.stackView.bottomAnchor constraintLessThanOrEqualToAnchor:guide.bottomAnchor] ]]; } return self; } - (void)play { } - (void)pause { } - (void)updateWithLang:(NSString *)lang cn:(NSString *)cn en:(NSString *)en { if (lang != nil) { self.langLabel.text = lang; } NSMutableParagraphStyle *para = [[NSMutableParagraphStyle alloc] init]; para.lineSpacing = 4; if (cn != nil) { self.cnLabel.attributedText = [[NSAttributedString alloc] initWithString:cn attributes:@{NSParagraphStyleAttributeName: para}]; } if (en != nil) { self.enLabel.attributedText = [[NSAttributedString alloc] initWithString:en attributes:@{NSParagraphStyleAttributeName: para}]; } } @end