mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Main project builds
This commit is contained in:
parent
4140b000e1
commit
cce22d7f0b
@ -1,10 +1,12 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import TelegramUIPreferences
|
import TelegramUIPreferences
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import DeviceLocationManager
|
import DeviceLocationManager
|
||||||
import TemporaryCachedPeerDataManager
|
import TemporaryCachedPeerDataManager
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
import TextFormat
|
import TextFormat
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import Display
|
import Display
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import TelegramCore
|
|||||||
import SyncCore
|
import SyncCore
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import Display
|
import Display
|
||||||
|
import AsyncDisplayKit
|
||||||
|
|
||||||
public enum ChatControllerInteractionOpenMessageMode {
|
public enum ChatControllerInteractionOpenMessageMode {
|
||||||
case `default`
|
case `default`
|
||||||
|
@ -7,8 +7,8 @@ swift_library(
|
|||||||
"Sources/**/*.swift",
|
"Sources/**/*.swift",
|
||||||
]),
|
]),
|
||||||
deps = [
|
deps = [
|
||||||
"//submodules/Display:Display",
|
"//submodules/Display:Display#shared",
|
||||||
"//submodules/AsyncDisplayKit:AsyncDisplayKit",
|
"//submodules/AsyncDisplayKit:AsyncDisplayKit#shared",
|
||||||
],
|
],
|
||||||
visibility = [
|
visibility = [
|
||||||
"//visibility:public",
|
"//visibility:public",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
import Display
|
import Display
|
||||||
|
@ -2,6 +2,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
|
@ -16,6 +16,30 @@ public class ImmediateTextNode: TextNode {
|
|||||||
public var textShadowColor: UIColor?
|
public var textShadowColor: UIColor?
|
||||||
public var textStroke: (UIColor, CGFloat)?
|
public var textStroke: (UIColor, CGFloat)?
|
||||||
public var cutout: TextNodeCutout?
|
public var cutout: TextNodeCutout?
|
||||||
|
|
||||||
|
public var truncationMode: NSLineBreakMode {
|
||||||
|
get {
|
||||||
|
switch self.truncationType {
|
||||||
|
case .start:
|
||||||
|
return .byTruncatingHead
|
||||||
|
case .middle:
|
||||||
|
return .byTruncatingMiddle
|
||||||
|
case .end:
|
||||||
|
return .byTruncatingTail
|
||||||
|
}
|
||||||
|
} set(value) {
|
||||||
|
switch value {
|
||||||
|
case .byTruncatingHead:
|
||||||
|
self.truncationType = .start
|
||||||
|
case .byTruncatingMiddle:
|
||||||
|
self.truncationType = .middle
|
||||||
|
case .byTruncatingTail:
|
||||||
|
self.truncationType = .end
|
||||||
|
default:
|
||||||
|
self.truncationType = .end
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer?
|
private var tapRecognizer: TapLongTapOrDoubleTapGestureRecognizer?
|
||||||
private var linkHighlightingNode: LinkHighlightingNode?
|
private var linkHighlightingNode: LinkHighlightingNode?
|
||||||
@ -157,3 +181,9 @@ public class ImmediateTextNode: TextNode {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ASTextNode: ImmediateTextNode {
|
||||||
|
override public func calculateSizeThatFits(_ constrainedSize: CGSize) -> CGSize {
|
||||||
|
return self.updateLayout(constrainedSize)
|
||||||
|
}
|
||||||
|
}
|
@ -788,6 +788,8 @@ open class NavigationBar: ASDisplayNode {
|
|||||||
self.stripeNode.backgroundColor = self.presentationData.theme.separatorColor
|
self.stripeNode.backgroundColor = self.presentationData.theme.separatorColor
|
||||||
|
|
||||||
self.badgeNode.updateTheme(fillColor: self.presentationData.theme.badgeBackgroundColor, strokeColor: self.presentationData.theme.badgeStrokeColor, textColor: self.presentationData.theme.badgeTextColor)
|
self.badgeNode.updateTheme(fillColor: self.presentationData.theme.badgeBackgroundColor, strokeColor: self.presentationData.theme.badgeStrokeColor, textColor: self.presentationData.theme.badgeTextColor)
|
||||||
|
|
||||||
|
self.requestLayout()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,15 +273,7 @@ private final class NavigationButtonItemNode: ImmediateTextNode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if shouldChangeHighlight {
|
if shouldChangeHighlight {
|
||||||
if let imageNode = self.imageNode {
|
self.alpha = !self.isEnabled ? 1.0 : (highlighted ? 0.4 : 1.0)
|
||||||
let previousAlpha = self.imageRippleNode.alpha
|
|
||||||
self.imageRippleNode.alpha = highlighted ? 1.0 : 0.0
|
|
||||||
if !highlighted {
|
|
||||||
self.imageRippleNode.layer.animateAlpha(from: previousAlpha, to: self.imageRippleNode.alpha, duration: 0.25)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
self.alpha = !self.isEnabled ? 1.0 : (highlighted ? 0.4 : 1.0)
|
|
||||||
}
|
|
||||||
self.highlightChanged(highlighted)
|
self.highlightChanged(highlighted)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,31 @@
|
|||||||
import UIKit
|
import UIKit
|
||||||
|
import UIKitRuntimeUtils
|
||||||
|
|
||||||
|
public extension UIView {
|
||||||
|
static func animationDurationFactor() -> Double {
|
||||||
|
return animationDurationFactorImpl()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public func makeSpringAnimation(_ keyPath: String) -> CABasicAnimation {
|
||||||
|
return makeSpringAnimationImpl(keyPath)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func makeSpringBounceAnimation(_ keyPath: String, _ initialVelocity: CGFloat, _ damping: CGFloat) -> CABasicAnimation {
|
||||||
|
return makeSpringBounceAnimationImpl(keyPath, initialVelocity, damping)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func springAnimationValueAt(_ animation: CABasicAnimation, _ t: CGFloat) -> CGFloat {
|
||||||
|
return springAnimationValueAtImpl(animation, t)
|
||||||
|
}
|
||||||
|
|
||||||
|
public func makeCustomZoomBlurEffect() -> UIBlurEffect? {
|
||||||
|
return makeCustomZoomBlurEffectImpl()
|
||||||
|
}
|
||||||
|
|
||||||
|
public func applySmoothRoundedCorners(_ layer: CALayer) {
|
||||||
|
applySmoothRoundedCornersImpl(layer)
|
||||||
|
}
|
||||||
|
|
||||||
public func dumpViews(_ view: UIView) {
|
public func dumpViews(_ view: UIView) {
|
||||||
dumpViews(view, indent: "")
|
dumpViews(view, indent: "")
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
import Display
|
import Display
|
||||||
|
import AsyncDisplayKit
|
||||||
|
|
||||||
final class ItemListMaskAccessoryItem: ListViewAccessoryItem {
|
final class ItemListMaskAccessoryItem: ListViewAccessoryItem {
|
||||||
private let sectionId: Int32
|
private let sectionId: Int32
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
import AppBundle
|
import AppBundle
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import MapKit
|
import MapKit
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import LegacyComponents
|
import LegacyComponents
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import AccountContext
|
import AccountContext
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import Postbox
|
import Postbox
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import Postbox
|
import Postbox
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
import Display
|
import Display
|
||||||
|
import AsyncDisplayKit
|
||||||
|
|
||||||
public final class ReactionSwipeGestureRecognizer: UIPanGestureRecognizer {
|
public final class ReactionSwipeGestureRecognizer: UIPanGestureRecognizer {
|
||||||
private var validatedGesture = false
|
private var validatedGesture = false
|
||||||
|
@ -155,7 +155,7 @@ public final class SelectablePeerNode: ASDisplayNode {
|
|||||||
overrideImage = .deletedIcon
|
overrideImage = .deletedIcon
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
self.textNode.maximumNumberOfLines = UInt(numberOfLines)
|
self.textNode.maximumNumberOfLines = numberOfLines
|
||||||
self.textNode.attributedText = NSAttributedString(string: text, font: textFont, textColor: self.currentSelected ? self.theme.selectedTextColor : defaultColor, paragraphAlignment: .center)
|
self.textNode.attributedText = NSAttributedString(string: text, font: textFont, textColor: self.currentSelected ? self.theme.selectedTextColor : defaultColor, paragraphAlignment: .center)
|
||||||
self.avatarNode.setPeer(context: context, theme: theme, peer: mainPeer, overrideImage: overrideImage, emptyColor: self.theme.avatarPlaceholderColor, synchronousLoad: synchronousLoad)
|
self.avatarNode.setPeer(context: context, theme: theme, peer: mainPeer, overrideImage: overrideImage, emptyColor: self.theme.avatarPlaceholderColor, synchronousLoad: synchronousLoad)
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import Postbox
|
import Postbox
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
|
@ -455,7 +455,7 @@ final class SharedApplicationContext {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ASDisableLogging()
|
//ASDisableLogging()
|
||||||
|
|
||||||
initializeLegacyComponents(application: application, currentSizeClassGetter: {
|
initializeLegacyComponents(application: application, currentSizeClassGetter: {
|
||||||
return UIUserInterfaceSizeClass.compact
|
return UIUserInterfaceSizeClass.compact
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import TelegramPresentationData
|
import TelegramPresentationData
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Display
|
import Display
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
import Postbox
|
import Postbox
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
import AsyncDisplayKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import SwiftSignalKit
|
import SwiftSignalKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import SyncCore
|
import SyncCore
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
import UIKit
|
||||||
import Postbox
|
import Postbox
|
||||||
import TelegramCore
|
import TelegramCore
|
||||||
import SyncCore
|
import SyncCore
|
||||||
|
@ -9,7 +9,7 @@ static_library(
|
|||||||
"Source/UIKitRuntimeUtils/*.h",
|
"Source/UIKitRuntimeUtils/*.h",
|
||||||
]),
|
]),
|
||||||
deps = [
|
deps = [
|
||||||
"//submodules/AsyncDisplayKit:AsyncDisplayKit",
|
"//submodules/AsyncDisplayKit:AsyncDisplayKit#shared",
|
||||||
"//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils",
|
"//submodules/ObjCRuntimeUtils:ObjCRuntimeUtils",
|
||||||
],
|
],
|
||||||
frameworks = [
|
frameworks = [
|
||||||
|
@ -1,16 +1,11 @@
|
|||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
|
|
||||||
@interface UIView (AnimationUtils)
|
double animationDurationFactorImpl();
|
||||||
|
|
||||||
+ (double)animationDurationFactor;
|
CABasicAnimation * _Nonnull makeSpringAnimationImpl(NSString * _Nonnull keyPath);
|
||||||
|
CABasicAnimation * _Nonnull makeSpringBounceAnimationImpl(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping);
|
||||||
|
CGFloat springAnimationValueAtImpl(CABasicAnimation * _Nonnull animation, CGFloat t);
|
||||||
|
|
||||||
@end
|
UIBlurEffect *makeCustomZoomBlurEffectImpl();
|
||||||
|
void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer);
|
||||||
CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath);
|
|
||||||
CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping);
|
|
||||||
CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t);
|
|
||||||
|
|
||||||
void testZoomBlurEffect(UIVisualEffect *effect);
|
|
||||||
UIBlurEffect *makeCustomZoomBlurEffect();
|
|
||||||
void applySmoothRoundedCorners(CALayer * _Nonnull layer);
|
|
||||||
|
@ -3,22 +3,16 @@
|
|||||||
#import <objc/runtime.h>
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
#if TARGET_IPHONE_SIMULATOR
|
#if TARGET_IPHONE_SIMULATOR
|
||||||
UIKIT_EXTERN float UIAnimationDragCoefficient(); // UIKit private drag coeffient, use judiciously
|
UIKIT_EXTERN float UIAnimationDragCoefficient();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@implementation UIView (AnimationUtils)
|
double animationDurationFactorImpl() {
|
||||||
|
|
||||||
+ (double)animationDurationFactor
|
|
||||||
{
|
|
||||||
#if TARGET_IPHONE_SIMULATOR
|
#if TARGET_IPHONE_SIMULATOR
|
||||||
return (double)UIAnimationDragCoefficient();
|
return (double)UIAnimationDragCoefficient();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 1.0f;
|
return 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
@interface CASpringAnimation ()
|
@interface CASpringAnimation ()
|
||||||
|
|
||||||
@end
|
@end
|
||||||
@ -54,7 +48,7 @@ UIKIT_EXTERN float UIAnimationDragCoefficient(); // UIKit private drag coeffient
|
|||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath) {
|
CABasicAnimation * _Nonnull makeSpringAnimationImpl(NSString * _Nonnull keyPath) {
|
||||||
CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath];
|
CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath];
|
||||||
springAnimation.mass = 3.0f;
|
springAnimation.mass = 3.0f;
|
||||||
springAnimation.stiffness = 1000.0f;
|
springAnimation.stiffness = 1000.0f;
|
||||||
@ -64,7 +58,7 @@ CABasicAnimation * _Nonnull makeSpringAnimation(NSString * _Nonnull keyPath) {
|
|||||||
return springAnimation;
|
return springAnimation;
|
||||||
}
|
}
|
||||||
|
|
||||||
CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping) {
|
CABasicAnimation * _Nonnull makeSpringBounceAnimationImpl(NSString * _Nonnull keyPath, CGFloat initialVelocity, CGFloat damping) {
|
||||||
CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath];
|
CASpringAnimation *springAnimation = [CASpringAnimation animationWithKeyPath:keyPath];
|
||||||
springAnimation.mass = 5.0f;
|
springAnimation.mass = 5.0f;
|
||||||
springAnimation.stiffness = 900.0f;
|
springAnimation.stiffness = 900.0f;
|
||||||
@ -84,7 +78,7 @@ CABasicAnimation * _Nonnull makeSpringBounceAnimation(NSString * _Nonnull keyPat
|
|||||||
return springAnimation;
|
return springAnimation;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t) {
|
CGFloat springAnimationValueAtImpl(CABasicAnimation * _Nonnull animation, CGFloat t) {
|
||||||
return [(CASpringAnimation *)animation valueAt:t];
|
return [(CASpringAnimation *)animation valueAt:t];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,9 +104,6 @@ CGFloat springAnimationValueAt(CABasicAnimation * _Nonnull animation, CGFloat t)
|
|||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
void testZoomBlurEffect(UIVisualEffect *effect) {
|
|
||||||
}
|
|
||||||
|
|
||||||
static NSString *encodeText(NSString *string, int key) {
|
static NSString *encodeText(NSString *string, int key) {
|
||||||
NSMutableString *result = [[NSMutableString alloc] init];
|
NSMutableString *result = [[NSMutableString alloc] init];
|
||||||
|
|
||||||
@ -168,7 +159,7 @@ static void setBoolField(CustomBlurEffect *object, NSString *name, BOOL value) {
|
|||||||
[inv invoke];
|
[inv invoke];
|
||||||
}
|
}
|
||||||
|
|
||||||
UIBlurEffect *makeCustomZoomBlurEffect() {
|
UIBlurEffect *makeCustomZoomBlurEffectImpl() {
|
||||||
if (@available(iOS 11.0, *)) {
|
if (@available(iOS 11.0, *)) {
|
||||||
NSString *string = [@[@"_", @"UI", @"Custom", @"BlurEffect"] componentsJoinedByString:@""];
|
NSString *string = [@[@"_", @"UI", @"Custom", @"BlurEffect"] componentsJoinedByString:@""];
|
||||||
CustomBlurEffect *result = (CustomBlurEffect *)[NSClassFromString(string) effectWithStyle:0];
|
CustomBlurEffect *result = (CustomBlurEffect *)[NSClassFromString(string) effectWithStyle:0];
|
||||||
@ -193,7 +184,7 @@ UIBlurEffect *makeCustomZoomBlurEffect() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void applySmoothRoundedCorners(CALayer * _Nonnull layer) {
|
void applySmoothRoundedCornersImpl(CALayer * _Nonnull layer) {
|
||||||
if (@available(iOS 11.0, *)) {
|
if (@available(iOS 11.0, *)) {
|
||||||
setBoolField(layer, encodeText(@"tfuDpoujovpvtDpsofst;", -1), true);
|
setBoolField(layer, encodeText(@"tfuDpoujovpvtDpsofst;", -1), true);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user