forked from shadowfacts/Tusker
Correctly round corners of My Profile tab icon
This commit is contained in:
parent
576e4aa90d
commit
fd0054addf
|
@ -21,19 +21,8 @@ class MyProfileViewController: ProfileViewController {
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.accountID = account.id
|
self.accountID = account.id
|
||||||
|
self.setAvatarTabBarImage()
|
||||||
}
|
}
|
||||||
|
|
||||||
_ = ImageCache.avatars.get(account.avatar, completion: { [weak self] (data) in
|
|
||||||
guard let self = self, let data = data, let image = UIImage(data: data) else { return }
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
let size = CGSize(width: 30, height: 30)
|
|
||||||
let tabBarImage = UIGraphicsImageRenderer(size: size).image { (_) in
|
|
||||||
image.draw(in: CGRect(origin: .zero, size: size))
|
|
||||||
}
|
|
||||||
let alwaysOriginalImage = tabBarImage.withRenderingMode(.alwaysOriginal)
|
|
||||||
self.tabBarItem.image = alwaysOriginalImage
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,8 +34,38 @@ class MyProfileViewController: ProfileViewController {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
|
|
||||||
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Preferences", style: .plain, target: self, action: #selector(preferencesPressed))
|
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Preferences", style: .plain, target: self, action: #selector(preferencesPressed))
|
||||||
|
|
||||||
|
NotificationCenter.default.addObserver(self, selector: #selector(preferencesChanged), name: .preferencesChanged, object: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func setAvatarTabBarImage() {
|
||||||
|
guard let id = mastodonController.account?.id,
|
||||||
|
let account = mastodonController.persistentContainer.account(for: id) else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
_ = ImageCache.avatars.get(account.avatar, completion: { [weak self] (data) in
|
||||||
|
guard let self = self, let data = data, let image = UIImage(data: data) else { return }
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
let size = CGSize(width: 30, height: 30)
|
||||||
|
let rect = CGRect(origin: .zero, size: size)
|
||||||
|
let tabBarImage = UIGraphicsImageRenderer(size: size).image { (_) in
|
||||||
|
let radius = Preferences.shared.avatarStyle.cornerRadiusFraction * 30
|
||||||
|
UIBezierPath(roundedRect: rect, cornerRadius: radius).addClip()
|
||||||
|
image.draw(in: rect)
|
||||||
|
}
|
||||||
|
let alwaysOriginalImage = tabBarImage.withRenderingMode(.alwaysOriginal)
|
||||||
|
self.tabBarItem.image = alwaysOriginalImage
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc private func preferencesChanged() {
|
||||||
|
setAvatarTabBarImage()
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Interaction
|
||||||
|
|
||||||
@objc func preferencesPressed() {
|
@objc func preferencesPressed() {
|
||||||
present(PreferencesNavigationController(mastodonController: mastodonController), animated: true)
|
present(PreferencesNavigationController(mastodonController: mastodonController), animated: true)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue