From 01f0c95efe39fde6fc467c49a119a8482acb5f94 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 10 Jul 2019 07:10:06 +0200 Subject: [PATCH] Fixed account item nodes heights --- .../TelegramUI/ItemListPeerActionItem.swift | 20 ++++++++++--- .../TelegramUI/ItemListPeerItem.swift | 30 +++++++++++-------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift b/submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift index 2245fc9152..8578b41a5e 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift +++ b/submodules/TelegramUI/TelegramUI/ItemListPeerActionItem.swift @@ -144,7 +144,19 @@ class ItemListPeerActionItemNode: ListViewItemNode { if currentItem?.theme !== item.theme { updatedTheme = item.theme } - let leftInset: CGFloat = 65.0 + params.leftInset + let leftInset: CGFloat + let height: CGFloat + let verticalOffset: CGFloat + switch item.height { + case .generic: + height = 44.0 + verticalOffset = -3.0 + leftInset = 59.0 + params.leftInset + case .peerList: + height = 50.0 + verticalOffset = 0.0 + leftInset = 65.0 + params.leftInset + } let editingOffset: CGFloat = (item.editing ? 38.0 : 0.0) @@ -153,7 +165,7 @@ class ItemListPeerActionItemNode: ListViewItemNode { let separatorHeight = UIScreenPixel let insets = itemListNeighborsGroupedInsets(neighbors) - let contentSize = CGSize(width: params.width, height: 50.0) + let contentSize = CGSize(width: params.width, height: height) let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) let layoutSize = layout.size @@ -216,9 +228,9 @@ class ItemListPeerActionItemNode: ListViewItemNode { strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight)) transition.updateFrame(node: strongSelf.bottomStripeNode, frame: CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height + bottomStripeOffset), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight))) - transition.updateFrame(node: strongSelf.titleNode, frame: CGRect(origin: CGPoint(x: leftInset + editingOffset, y: 14.0), size: titleLayout.size)) + transition.updateFrame(node: strongSelf.titleNode, frame: CGRect(origin: CGPoint(x: leftInset + editingOffset, y: 14.0 + verticalOffset), size: titleLayout.size)) - strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: 50.0 + UIScreenPixel + UIScreenPixel)) + strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: height + UIScreenPixel + UIScreenPixel)) } }) } diff --git a/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift b/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift index 19ee9fa7cc..5f052c4f03 100644 --- a/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift +++ b/submodules/TelegramUI/TelegramUI/ItemListPeerItem.swift @@ -439,7 +439,22 @@ class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNode { break } - let leftInset: CGFloat = 65.0 + params.leftInset + let leftInset: CGFloat + let height: CGFloat + let verticalOffset: CGFloat + let avatarSize: CGFloat + switch item.height { + case .generic: + height = 44.0 + verticalOffset = -3.0 + avatarSize = 31.0 + leftInset = 59.0 + params.leftInset + case .peerList: + height = 50.0 + verticalOffset = 0.0 + avatarSize = 40.0 + leftInset = 65.0 + params.leftInset + } var editableControlSizeAndApply: (CGSize, () -> ItemListEditableControlNode)? @@ -497,17 +512,6 @@ class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNode { insets.bottom = 0.0 } - let height: CGFloat - let verticalOffset: CGFloat - switch item.height { - case .generic: - height = 44.0 - verticalOffset = -3.0 - case .peerList: - height = 50.0 - verticalOffset = 0.0 - } - let contentSize = CGSize(width: params.width, height: height) let separatorHeight = UIScreenPixel @@ -725,7 +729,7 @@ class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNode { strongSelf.labelBadgeNode.frame = CGRect(origin: CGPoint(x: revealOffset + params.width - rightLabelInset - badgeWidth, y: labelFrame.minY - 1.0), size: CGSize(width: badgeWidth, height: badgeDiameter)) - transition.updateFrame(node: strongSelf.avatarNode, frame: CGRect(origin: CGPoint(x: params.leftInset + revealOffset + editingOffset + 15.0, y: 5.0 + verticalOffset), size: CGSize(width: 40.0, height: 40.0))) + transition.updateFrame(node: strongSelf.avatarNode, frame: CGRect(origin: CGPoint(x: params.leftInset + revealOffset + editingOffset + 15.0, y: floorToScreenPixels((height - avatarSize) / 2.0)), size: CGSize(width: avatarSize, height: avatarSize))) if item.peer.id == item.account.peerId, case .threatSelfAsSaved = item.aliasHandling { strongSelf.avatarNode.setPeer(account: item.account, theme: item.theme, peer: item.peer, overrideImage: .savedMessagesIcon, emptyColor: item.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoad)