mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Various fixes
This commit is contained in:
parent
0ec02a6f86
commit
a80709842e
@ -516,6 +516,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
let updateEntityView: ActionSlot<(UUID, Bool)>
|
let updateEntityView: ActionSlot<(UUID, Bool)>
|
||||||
let endEditingTextEntityView: ActionSlot<(UUID, Bool)>
|
let endEditingTextEntityView: ActionSlot<(UUID, Bool)>
|
||||||
let entityViewForEntity: (DrawingEntity) -> DrawingEntityView?
|
let entityViewForEntity: (DrawingEntity) -> DrawingEntityView?
|
||||||
|
let presentGallery: (() -> Void)?
|
||||||
let apply: ActionSlot<Void>
|
let apply: ActionSlot<Void>
|
||||||
let dismiss: ActionSlot<Void>
|
let dismiss: ActionSlot<Void>
|
||||||
|
|
||||||
@ -551,6 +552,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
updateEntityView: ActionSlot<(UUID, Bool)>,
|
updateEntityView: ActionSlot<(UUID, Bool)>,
|
||||||
endEditingTextEntityView: ActionSlot<(UUID, Bool)>,
|
endEditingTextEntityView: ActionSlot<(UUID, Bool)>,
|
||||||
entityViewForEntity: @escaping (DrawingEntity) -> DrawingEntityView?,
|
entityViewForEntity: @escaping (DrawingEntity) -> DrawingEntityView?,
|
||||||
|
presentGallery: (() -> Void)?,
|
||||||
apply: ActionSlot<Void>,
|
apply: ActionSlot<Void>,
|
||||||
dismiss: ActionSlot<Void>,
|
dismiss: ActionSlot<Void>,
|
||||||
presentColorPicker: @escaping (DrawingColor) -> Void,
|
presentColorPicker: @escaping (DrawingColor) -> Void,
|
||||||
@ -584,6 +586,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
self.updateEntityView = updateEntityView
|
self.updateEntityView = updateEntityView
|
||||||
self.endEditingTextEntityView = endEditingTextEntityView
|
self.endEditingTextEntityView = endEditingTextEntityView
|
||||||
self.entityViewForEntity = entityViewForEntity
|
self.entityViewForEntity = entityViewForEntity
|
||||||
|
self.presentGallery = presentGallery
|
||||||
self.apply = apply
|
self.apply = apply
|
||||||
self.dismiss = dismiss
|
self.dismiss = dismiss
|
||||||
self.presentColorPicker = presentColorPicker
|
self.presentColorPicker = presentColorPicker
|
||||||
@ -665,6 +668,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
private let toggleWithPreviousTool: ActionSlot<Void>
|
private let toggleWithPreviousTool: ActionSlot<Void>
|
||||||
private let insertSticker: ActionSlot<Void>
|
private let insertSticker: ActionSlot<Void>
|
||||||
private let insertText: ActionSlot<Void>
|
private let insertText: ActionSlot<Void>
|
||||||
|
fileprivate var presentGallery: (() -> Void)?
|
||||||
private let updateEntityView: ActionSlot<(UUID, Bool)>
|
private let updateEntityView: ActionSlot<(UUID, Bool)>
|
||||||
private let endEditingTextEntityView: ActionSlot<(UUID, Bool)>
|
private let endEditingTextEntityView: ActionSlot<(UUID, Bool)>
|
||||||
private let entityViewForEntity: (DrawingEntity) -> DrawingEntityView?
|
private let entityViewForEntity: (DrawingEntity) -> DrawingEntityView?
|
||||||
@ -692,6 +696,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
toggleWithPreviousTool: ActionSlot<Void>,
|
toggleWithPreviousTool: ActionSlot<Void>,
|
||||||
insertSticker: ActionSlot<Void>,
|
insertSticker: ActionSlot<Void>,
|
||||||
insertText: ActionSlot<Void>,
|
insertText: ActionSlot<Void>,
|
||||||
|
presentGallery: (() -> Void)?,
|
||||||
updateEntityView: ActionSlot<(UUID, Bool)>,
|
updateEntityView: ActionSlot<(UUID, Bool)>,
|
||||||
endEditingTextEntityView: ActionSlot<(UUID, Bool)>,
|
endEditingTextEntityView: ActionSlot<(UUID, Bool)>,
|
||||||
entityViewForEntity: @escaping (DrawingEntity) -> DrawingEntityView?,
|
entityViewForEntity: @escaping (DrawingEntity) -> DrawingEntityView?,
|
||||||
@ -707,6 +712,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
self.toggleWithPreviousTool = toggleWithPreviousTool
|
self.toggleWithPreviousTool = toggleWithPreviousTool
|
||||||
self.insertSticker = insertSticker
|
self.insertSticker = insertSticker
|
||||||
self.insertText = insertText
|
self.insertText = insertText
|
||||||
|
self.presentGallery = presentGallery
|
||||||
self.updateEntityView = updateEntityView
|
self.updateEntityView = updateEntityView
|
||||||
self.endEditingTextEntityView = endEditingTextEntityView
|
self.endEditingTextEntityView = endEditingTextEntityView
|
||||||
self.entityViewForEntity = entityViewForEntity
|
self.entityViewForEntity = entityViewForEntity
|
||||||
@ -1004,6 +1010,9 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
|
|
||||||
self.updateEntitiesPlayback.invoke(false)
|
self.updateEntitiesPlayback.invoke(false)
|
||||||
let controller = StickerPickerScreen(context: self.context, inputData: self.stickerPickerInputData.get())
|
let controller = StickerPickerScreen(context: self.context, inputData: self.stickerPickerInputData.get())
|
||||||
|
if let presentGallery = self.presentGallery {
|
||||||
|
controller.presentGallery = presentGallery
|
||||||
|
}
|
||||||
controller.completion = { [weak self] content in
|
controller.completion = { [weak self] content in
|
||||||
self?.updateEntitiesPlayback.invoke(true)
|
self?.updateEntitiesPlayback.invoke(true)
|
||||||
|
|
||||||
@ -1032,6 +1041,7 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
toggleWithPreviousTool: self.toggleWithPreviousTool,
|
toggleWithPreviousTool: self.toggleWithPreviousTool,
|
||||||
insertSticker: self.insertSticker,
|
insertSticker: self.insertSticker,
|
||||||
insertText: self.insertText,
|
insertText: self.insertText,
|
||||||
|
presentGallery: self.presentGallery,
|
||||||
updateEntityView: self.updateEntityView,
|
updateEntityView: self.updateEntityView,
|
||||||
endEditingTextEntityView: self.endEditingTextEntityView,
|
endEditingTextEntityView: self.endEditingTextEntityView,
|
||||||
entityViewForEntity: self.entityViewForEntity,
|
entityViewForEntity: self.entityViewForEntity,
|
||||||
@ -1113,6 +1123,8 @@ private final class DrawingScreenComponent: CombinedComponent {
|
|||||||
let updateEntityView = component.updateEntityView
|
let updateEntityView = component.updateEntityView
|
||||||
let endEditingTextEntityView = component.endEditingTextEntityView
|
let endEditingTextEntityView = component.endEditingTextEntityView
|
||||||
|
|
||||||
|
state.presentGallery = component.presentGallery
|
||||||
|
|
||||||
component.updateState.connect { [weak state] updatedState in
|
component.updateState.connect { [weak state] updatedState in
|
||||||
state?.updateDrawingState(updatedState)
|
state?.updateDrawingState(updatedState)
|
||||||
}
|
}
|
||||||
@ -2670,6 +2682,7 @@ public class DrawingScreen: ViewController, TGPhotoDrawingInterfaceController, U
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
presentGallery: self.controller?.presentGallery,
|
||||||
apply: self.apply,
|
apply: self.apply,
|
||||||
dismiss: self.dismiss,
|
dismiss: self.dismiss,
|
||||||
presentColorPicker: { [weak self] initialColor in
|
presentColorPicker: { [weak self] initialColor in
|
||||||
@ -2737,6 +2750,8 @@ public class DrawingScreen: ViewController, TGPhotoDrawingInterfaceController, U
|
|||||||
public var getCurrentImage: () -> UIImage? = { return nil }
|
public var getCurrentImage: () -> UIImage? = { return nil }
|
||||||
public var updateVideoPlayback: (Bool) -> Void = { _ in }
|
public var updateVideoPlayback: (Bool) -> Void = { _ in }
|
||||||
|
|
||||||
|
public var presentGallery: (() -> Void)?
|
||||||
|
|
||||||
public init(context: AccountContext, sourceHint: SourceHint? = nil, size: CGSize, originalSize: CGSize, isVideo: Bool, isAvatar: Bool, drawingView: DrawingView?, entitiesView: (UIView & TGPhotoDrawingEntitiesView)?, selectionContainerView: DrawingSelectionContainerView?, existingStickerPickerInputData: Promise<StickerPickerInputData>? = nil) {
|
public init(context: AccountContext, sourceHint: SourceHint? = nil, size: CGSize, originalSize: CGSize, isVideo: Bool, isAvatar: Bool, drawingView: DrawingView?, entitiesView: (UIView & TGPhotoDrawingEntitiesView)?, selectionContainerView: DrawingSelectionContainerView?, existingStickerPickerInputData: Promise<StickerPickerInputData>? = nil) {
|
||||||
self.context = context
|
self.context = context
|
||||||
self.sourceHint = sourceHint
|
self.sourceHint = sourceHint
|
||||||
|
@ -1673,8 +1673,8 @@ public final class MediaPickerScreen: ViewController, AttachmentContainable {
|
|||||||
self.updateSelectionState(count: Int32(selectionContext.count()))
|
self.updateSelectionState(count: Int32(selectionContext.count()))
|
||||||
|
|
||||||
self.longTapWithTabBar = { [weak self] in
|
self.longTapWithTabBar = { [weak self] in
|
||||||
if let strongSelf = self {
|
if let self, self.groupsController == nil {
|
||||||
strongSelf.presentSearch(activateOnDisplay: false)
|
self.presentSearch(activateOnDisplay: false)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1924,6 +1924,7 @@ public final class MediaPickerScreen: ViewController, AttachmentContainable {
|
|||||||
self.controllerNode.updateNavigation(delayDisappear: true, transition: .immediate)
|
self.controllerNode.updateNavigation(delayDisappear: true, transition: .immediate)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private weak var groupsController: MediaGroupsScreen?
|
||||||
private func presentSearch(activateOnDisplay: Bool) {
|
private func presentSearch(activateOnDisplay: Bool) {
|
||||||
guard self.moreButtonNode.iconNode.iconState == .search, case let .assets(_, mode) = self.subject else {
|
guard self.moreButtonNode.iconNode.iconState == .search, case let .assets(_, mode) = self.subject else {
|
||||||
return
|
return
|
||||||
@ -1976,6 +1977,7 @@ public final class MediaPickerScreen: ViewController, AttachmentContainable {
|
|||||||
} else {
|
} else {
|
||||||
self.presentWebSearch(groupsController, activateOnDisplay)
|
self.presentWebSearch(groupsController, activateOnDisplay)
|
||||||
}
|
}
|
||||||
|
self.groupsController = groupsController
|
||||||
}
|
}
|
||||||
|
|
||||||
@objc private func searchOrMorePressed(node: ContextReferenceContentNode, gesture: ContextGesture?) {
|
@objc private func searchOrMorePressed(node: ContextReferenceContentNode, gesture: ContextGesture?) {
|
||||||
|
@ -404,76 +404,19 @@ public final class EntityKeyboardComponent: Component {
|
|||||||
|
|
||||||
if let gifContent = component.gifContent {
|
if let gifContent = component.gifContent {
|
||||||
contents.append(AnyComponentWithIdentity(id: "gifs", component: AnyComponent(gifContent)))
|
contents.append(AnyComponentWithIdentity(id: "gifs", component: AnyComponent(gifContent)))
|
||||||
/*var topGifItems: [EntityKeyboardTopPanelComponent.Item] = []
|
|
||||||
if component.hasRecentGifs {
|
|
||||||
topGifItems.append(EntityKeyboardTopPanelComponent.Item(
|
|
||||||
id: "recent",
|
|
||||||
isReorderable: false,
|
|
||||||
content: AnyComponent(EntityKeyboardIconTopPanelComponent(
|
|
||||||
icon: .recent,
|
|
||||||
theme: component.theme,
|
|
||||||
useAccentColor: false,
|
|
||||||
title: component.strings.Stickers_Recent,
|
|
||||||
pressed: { [weak self] in
|
|
||||||
self?.component?.switchToGifSubject(.recent)
|
|
||||||
}
|
|
||||||
))
|
|
||||||
))
|
|
||||||
}
|
|
||||||
topGifItems.append(EntityKeyboardTopPanelComponent.Item(
|
|
||||||
id: "trending",
|
|
||||||
isReorderable: false,
|
|
||||||
content: AnyComponent(EntityKeyboardIconTopPanelComponent(
|
|
||||||
icon: .trending,
|
|
||||||
theme: component.theme,
|
|
||||||
useAccentColor: false,
|
|
||||||
title: component.strings.Stickers_Trending,
|
|
||||||
pressed: { [weak self] in
|
|
||||||
self?.component?.switchToGifSubject(.trending)
|
|
||||||
}
|
|
||||||
))
|
|
||||||
))
|
|
||||||
if let emojiContent = component.emojiContent {
|
|
||||||
for emoji in component.availableGifSearchEmojies {
|
|
||||||
topGifItems.append(EntityKeyboardTopPanelComponent.Item(
|
|
||||||
id: emoji.emoji,
|
|
||||||
isReorderable: false,
|
|
||||||
content: AnyComponent(EntityKeyboardAnimationTopPanelComponent(
|
|
||||||
context: emojiContent.context,
|
|
||||||
item: EntityKeyboardAnimationData(file: emoji.file),
|
|
||||||
isFeatured: false,
|
|
||||||
isPremiumLocked: false,
|
|
||||||
animationCache: emojiContent.animationCache,
|
|
||||||
animationRenderer: emojiContent.animationRenderer,
|
|
||||||
theme: component.theme,
|
|
||||||
title: emoji.title,
|
|
||||||
pressed: { [weak self] in
|
|
||||||
self?.component?.switchToGifSubject(.emojiSearch(emoji.emoji))
|
|
||||||
}
|
|
||||||
))
|
|
||||||
))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let defaultActiveGifItemId: AnyHashable
|
|
||||||
switch gifContent.subject {
|
|
||||||
case .recent:
|
|
||||||
defaultActiveGifItemId = "recent"
|
|
||||||
case .trending:
|
|
||||||
defaultActiveGifItemId = "trending"
|
|
||||||
case let .emojiSearch(value):
|
|
||||||
defaultActiveGifItemId = AnyHashable(value)
|
|
||||||
}
|
|
||||||
contentTopPanels.append(AnyComponentWithIdentity(id: "gifs", component: AnyComponent(EntityKeyboardTopPanelComponent(
|
|
||||||
id: "gifs",
|
|
||||||
theme: component.theme,
|
|
||||||
items: topGifItems,
|
|
||||||
containerSideInset: component.containerInsets.left + component.topPanelInsets.left,
|
|
||||||
forceActiveItemId: defaultActiveGifItemId,
|
|
||||||
activeContentItemIdUpdated: gifsContentItemIdUpdated,
|
|
||||||
reorderItems: { _ in
|
|
||||||
}
|
|
||||||
))))*/
|
|
||||||
contentIcons.append(PagerComponentContentIcon(id: "gifs", imageName: "Chat/Input/Media/EntityInputGifsIcon", title: component.strings.EmojiInput_TabGifs))
|
contentIcons.append(PagerComponentContentIcon(id: "gifs", imageName: "Chat/Input/Media/EntityInputGifsIcon", title: component.strings.EmojiInput_TabGifs))
|
||||||
|
if let addImage = component.stickerContent?.inputInteractionHolder.inputInteraction?.addImage {
|
||||||
|
contentAccessoryLeftButtons.append(AnyComponentWithIdentity(id: "gifs", component: AnyComponent(Button(
|
||||||
|
content: AnyComponent(BundleIconComponent(
|
||||||
|
name: "Media Editor/AddImage",
|
||||||
|
tintColor: component.theme.chat.inputMediaPanel.panelIconColor,
|
||||||
|
maxSize: nil
|
||||||
|
)),
|
||||||
|
action: {
|
||||||
|
addImage()
|
||||||
|
}
|
||||||
|
).minSize(CGSize(width: 38.0, height: 38.0)))))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let stickerContent = component.stickerContent {
|
if let stickerContent = component.stickerContent {
|
||||||
|
@ -2691,10 +2691,11 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func presentGallery() {
|
func presentGallery(parentController: ViewController? = nil) {
|
||||||
guard let controller = self.controller else {
|
guard let controller = self.controller else {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
let parentController = parentController ?? controller
|
||||||
let galleryController = self.context.sharedContext.makeMediaPickerScreen(context: self.context, hasSearch: true, completion: { [weak self] result in
|
let galleryController = self.context.sharedContext.makeMediaPickerScreen(context: self.context, hasSearch: true, completion: { [weak self] result in
|
||||||
guard let self else {
|
guard let self else {
|
||||||
return
|
return
|
||||||
@ -2743,7 +2744,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
|
|||||||
self.updateModalTransitionFactor(transitionFactor, transition: transition)
|
self.updateModalTransitionFactor(transitionFactor, transition: transition)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
controller.push(galleryController)
|
parentController.push(galleryController)
|
||||||
}
|
}
|
||||||
|
|
||||||
private let staticEmojiPack = Promise<LoadedStickerPack>()
|
private let staticEmojiPack = Promise<LoadedStickerPack>()
|
||||||
@ -3063,6 +3064,11 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
|
|||||||
selectionContainerView: self.selectionContainerView,
|
selectionContainerView: self.selectionContainerView,
|
||||||
existingStickerPickerInputData: self.stickerPickerInputData
|
existingStickerPickerInputData: self.stickerPickerInputData
|
||||||
)
|
)
|
||||||
|
controller.presentGallery = { [weak self] in
|
||||||
|
if let self {
|
||||||
|
self.presentGallery()
|
||||||
|
}
|
||||||
|
}
|
||||||
controller.getCurrentImage = { [weak self] in
|
controller.getCurrentImage = { [weak self] in
|
||||||
return self?.interaction?.getCurrentImage()
|
return self?.interaction?.getCurrentImage()
|
||||||
}
|
}
|
||||||
@ -3123,7 +3129,7 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
|
|||||||
self.interaction?.activate()
|
self.interaction?.activate()
|
||||||
self.entitiesView.selectEntity(nil)
|
self.entitiesView.selectEntity(nil)
|
||||||
}
|
}
|
||||||
self.controller?.present(controller, in: .window(.root))
|
self.controller?.present(controller, in: .current)
|
||||||
self.animateOutToTool()
|
self.animateOutToTool()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3234,9 +3240,9 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
|
|||||||
|
|
||||||
self.interaction?.containerLayoutUpdated(layout: layout, transition: transition)
|
self.interaction?.containerLayoutUpdated(layout: layout, transition: transition)
|
||||||
|
|
||||||
var layout = layout
|
// var layout = layout
|
||||||
layout.intrinsicInsets.top = topInset
|
// layout.intrinsicInsets.top = topInset
|
||||||
layout.intrinsicInsets.bottom = bottomInset + 60.0
|
// layout.intrinsicInsets.bottom = bottomInset + 60.0
|
||||||
controller.presentationContext.containerLayoutUpdated(layout, transition: transition.containedViewLayoutTransition)
|
controller.presentationContext.containerLayoutUpdated(layout, transition: transition.containedViewLayoutTransition)
|
||||||
|
|
||||||
if isFirstTime {
|
if isFirstTime {
|
||||||
|
@ -2090,9 +2090,10 @@ final class ShareWithPeersScreenComponent: Component {
|
|||||||
transition.setFrame(view: actionButtonView, frame: actionButtonFrame)
|
transition.setFrame(view: actionButtonView, frame: actionButtonFrame)
|
||||||
}
|
}
|
||||||
|
|
||||||
transition.setFrame(view: self.bottomBackgroundView, frame: CGRect(origin: CGPoint(x: containerSideInset, y: availableSize.height - bottomPanelHeight - 8.0), size: CGSize(width: containerWidth, height: bottomPanelHeight + 8.0)))
|
let bottomPanelInset: CGFloat = 8.0
|
||||||
|
transition.setFrame(view: self.bottomBackgroundView, frame: CGRect(origin: CGPoint(x: containerSideInset, y: availableSize.height - bottomPanelHeight - 8.0), size: CGSize(width: containerWidth, height: bottomPanelHeight + bottomPanelInset)))
|
||||||
self.bottomBackgroundView.update(size: self.bottomBackgroundView.bounds.size, transition: transition.containedViewLayoutTransition)
|
self.bottomBackgroundView.update(size: self.bottomBackgroundView.bounds.size, transition: transition.containedViewLayoutTransition)
|
||||||
transition.setFrame(layer: self.bottomSeparatorLayer, frame: CGRect(origin: CGPoint(x: containerSideInset + sideInset, y: availableSize.height - bottomPanelHeight - 8.0 - UIScreenPixel), size: CGSize(width: containerWidth, height: UIScreenPixel)))
|
transition.setFrame(layer: self.bottomSeparatorLayer, frame: CGRect(origin: CGPoint(x: containerSideInset + sideInset, y: availableSize.height - bottomPanelHeight - bottomPanelInset - UIScreenPixel), size: CGSize(width: containerWidth, height: UIScreenPixel)))
|
||||||
|
|
||||||
let itemContainerSize = CGSize(width: itemsContainerWidth, height: availableSize.height)
|
let itemContainerSize = CGSize(width: itemsContainerWidth, height: availableSize.height)
|
||||||
let itemLayout = ItemLayout(style: itemLayoutStyle, containerSize: itemContainerSize, containerInset: containerInset, bottomInset: footersTotalHeight, topInset: topInset, sideInset: sideInset, navigationHeight: navigationHeight, sections: sections)
|
let itemLayout = ItemLayout(style: itemLayoutStyle, containerSize: itemContainerSize, containerInset: containerInset, bottomInset: footersTotalHeight, topInset: topInset, sideInset: sideInset, navigationHeight: navigationHeight, sections: sections)
|
||||||
@ -2124,9 +2125,13 @@ final class ShareWithPeersScreenComponent: Component {
|
|||||||
if contentSize != self.scrollView.contentSize {
|
if contentSize != self.scrollView.contentSize {
|
||||||
self.scrollView.contentSize = contentSize
|
self.scrollView.contentSize = contentSize
|
||||||
}
|
}
|
||||||
let indicatorInsets = UIEdgeInsets(top: max(itemLayout.containerInset, environment.safeInsets.top + navigationHeight), left: 0.0, bottom: environment.safeInsets.bottom, right: 0.0)
|
let contentInset: UIEdgeInsets = UIEdgeInsets(top: 0.0, left: 0.0, bottom: bottomPanelHeight + bottomPanelInset, right: 0.0)
|
||||||
if indicatorInsets != self.scrollView.scrollIndicatorInsets {
|
let indicatorInset = UIEdgeInsets(top: max(itemLayout.containerInset, environment.safeInsets.top + navigationHeight), left: 0.0, bottom: contentInset.bottom, right: 0.0)
|
||||||
self.scrollView.scrollIndicatorInsets = indicatorInsets
|
if indicatorInset != self.scrollView.scrollIndicatorInsets {
|
||||||
|
self.scrollView.scrollIndicatorInsets = indicatorInset
|
||||||
|
}
|
||||||
|
if contentInset != self.scrollView.contentInset {
|
||||||
|
self.scrollView.contentInset = contentInset
|
||||||
}
|
}
|
||||||
if resetScrolling {
|
if resetScrolling {
|
||||||
self.scrollView.bounds = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: containerWidth, height: availableSize.height))
|
self.scrollView.bounds = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: containerWidth, height: availableSize.height))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user