// // LargeAccountDetailViewController.swift // Tusker // // Created by Shadowfacts on 1/6/19. // Copyright © 2019 Shadowfacts. All rights reserved. // import UIKit import Pachyderm class LargeAccountDetailView: UIView { 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 = .secondaryLabel 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.trailingAnchor.constraint(equalTo: trailingAnchor), displayNameLabel.topAnchor.constraint(equalTo: topAnchor, constant: 8), usernameLabel.leadingAnchor.constraint(equalTo: avatarImageView.trailingAnchor, constant: 8), usernameLabel.trailingAnchor.constraint(equalTo: trailingAnchor), usernameLabel.topAnchor.constraint(equalTo: displayNameLabel.bottomAnchor) ]) NotificationCenter.default.addObserver(self, selector: #selector(updateUIForPreferences), name: .preferencesChanged, object: nil) } override func layoutSubviews() { super.layoutSubviews() updateUIForPreferences() } @objc 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) } } } }