// // LargeAccountDetailViewController.swift // Tusker // // Created by Shadowfacts on 1/6/19. // Copyright © 2019 Shadowfacts. All rights reserved. // import UIKit import Pachyderm class LargeAccountDetailView: UIView, PreferencesAdaptive { var avatarImageView = UIImageView() var displayNameLabel = UILabel() var usernameLabel = UILabel() required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) avatarImageView.translatesAutoresizingMaskIntoConstraints = false avatarImageView.layer.masksToBounds = true addSubview(avatarImageView) displayNameLabel.translatesAutoresizingMaskIntoConstraints = false displayNameLabel.font = .systemFont(ofSize: 20, weight: .semibold) addSubview(displayNameLabel) usernameLabel.translatesAutoresizingMaskIntoConstraints = false usernameLabel.font = .systemFont(ofSize: 17, weight: .light) usernameLabel.textColor = .darkGray addSubview(usernameLabel) NSLayoutConstraint.activate([ avatarImageView.heightAnchor.constraint(equalToConstant: 50), avatarImageView.widthAnchor.constraint(equalToConstant: 50), avatarImageView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 8), avatarImageView.topAnchor.constraint(equalTo: topAnchor, constant: 8), avatarImageView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -8), displayNameLabel.leadingAnchor.constraint(equalTo: avatarImageView.trailingAnchor, constant: 8), displayNameLabel.topAnchor.constraint(equalTo: topAnchor, constant: 8), usernameLabel.leadingAnchor.constraint(equalTo: avatarImageView.trailingAnchor, constant: 8), usernameLabel.topAnchor.constraint(equalTo: displayNameLabel.bottomAnchor) ]) } override func layoutSubviews() { super.layoutSubviews() updateUIForPreferences() } func updateUIForPreferences() { avatarImageView.layer.cornerRadius = Preferences.shared.avatarStyle.cornerRadius(for: avatarImageView) } func update(account: Account) { displayNameLabel.text = account.realDisplayName usernameLabel.text = "@\(account.acct)" ImageCache.avatars.get(account.avatar) { (data) in guard let data = data else { return } DispatchQueue.main.async { self.avatarImageView.image = UIImage(data: data) } } } }