mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Channel statistics improvements
This commit is contained in:
57
submodules/GraphUI/Sources/UIView+Extensions.swift
Normal file
57
submodules/GraphUI/Sources/UIView+Extensions.swift
Normal file
@@ -0,0 +1,57 @@
|
||||
//
|
||||
// UIView+Extensions.swift
|
||||
// GraphTest
|
||||
//
|
||||
// Created by Andrei Salavei on 4/10/19.
|
||||
// Copyright © 2019 Andrei Salavei. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension UIView {
|
||||
static let oneDevicePixel: CGFloat = (1.0 / max(2, min(1, UIScreen.main.scale)))
|
||||
}
|
||||
|
||||
// MARK: UIView+Animation
|
||||
public extension UIView {
|
||||
func bringToFront() {
|
||||
superview?.bringSubviewToFront(self)
|
||||
}
|
||||
|
||||
func layoutIfNeeded(animated: Bool) {
|
||||
UIView.perform(animated: animated) {
|
||||
self.layoutIfNeeded()
|
||||
}
|
||||
}
|
||||
|
||||
func setVisible(_ visible: Bool, animated: Bool) {
|
||||
let updatedAlpha: CGFloat = visible ? 1 : 0
|
||||
if self.alpha != updatedAlpha {
|
||||
UIView.perform(animated: animated) {
|
||||
self.alpha = updatedAlpha
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static func perform(animated: Bool, animations: @escaping () -> Void) {
|
||||
perform(animated: animated, animations: animations, completion: { _ in })
|
||||
}
|
||||
|
||||
static func perform(animated: Bool, animations: @escaping () -> Void, completion: @escaping (Bool) -> Void) {
|
||||
if animated {
|
||||
|
||||
UIView.animate(withDuration: .defaultDuration, delay: 0, animations: animations, completion: completion)
|
||||
} else {
|
||||
animations()
|
||||
completion(true)
|
||||
}
|
||||
}
|
||||
|
||||
var isVisibleInWindow: Bool {
|
||||
guard let windowBounds = window?.bounds else {
|
||||
return false
|
||||
}
|
||||
let frame = convert(bounds, to: nil)
|
||||
return frame.intersects(windowBounds)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user