Fix layout on small screens
This commit is contained in:
parent
9a077479c2
commit
7882b8608c
|
@ -578,6 +578,7 @@
|
||||||
B85357C323A1BD1200AAF6CD /* SeedVCV2.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C223A1BD1200AAF6CD /* SeedVCV2.swift */; };
|
B85357C323A1BD1200AAF6CD /* SeedVCV2.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C223A1BD1200AAF6CD /* SeedVCV2.swift */; };
|
||||||
B85357C523A1F13800AAF6CD /* LinkDeviceVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C423A1F13800AAF6CD /* LinkDeviceVC.swift */; };
|
B85357C523A1F13800AAF6CD /* LinkDeviceVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C423A1F13800AAF6CD /* LinkDeviceVC.swift */; };
|
||||||
B85357C723A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C623A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift */; };
|
B85357C723A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = B85357C623A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift */; };
|
||||||
|
B8544E3123D16CA500299F14 /* DeviceUtilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8544E3023D16CA500299F14 /* DeviceUtilities.swift */; };
|
||||||
B86BD08423399ACF000F5AE3 /* Modal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08323399ACF000F5AE3 /* Modal.swift */; };
|
B86BD08423399ACF000F5AE3 /* Modal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08323399ACF000F5AE3 /* Modal.swift */; };
|
||||||
B86BD08623399CEF000F5AE3 /* SeedModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08523399CEF000F5AE3 /* SeedModal.swift */; };
|
B86BD08623399CEF000F5AE3 /* SeedModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B86BD08523399CEF000F5AE3 /* SeedModal.swift */; };
|
||||||
B885D5F4233491AB00EE0D8E /* DeviceLinkingModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B885D5F3233491AB00EE0D8E /* DeviceLinkingModal.swift */; };
|
B885D5F4233491AB00EE0D8E /* DeviceLinkingModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = B885D5F3233491AB00EE0D8E /* DeviceLinkingModal.swift */; };
|
||||||
|
@ -1417,6 +1418,7 @@
|
||||||
B85357C223A1BD1200AAF6CD /* SeedVCV2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedVCV2.swift; sourceTree = "<group>"; };
|
B85357C223A1BD1200AAF6CD /* SeedVCV2.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedVCV2.swift; sourceTree = "<group>"; };
|
||||||
B85357C423A1F13800AAF6CD /* LinkDeviceVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkDeviceVC.swift; sourceTree = "<group>"; };
|
B85357C423A1F13800AAF6CD /* LinkDeviceVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkDeviceVC.swift; sourceTree = "<group>"; };
|
||||||
B85357C623A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkDeviceVCDelegate.swift; sourceTree = "<group>"; };
|
B85357C623A1FB5100AAF6CD /* LinkDeviceVCDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkDeviceVCDelegate.swift; sourceTree = "<group>"; };
|
||||||
|
B8544E3023D16CA500299F14 /* DeviceUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceUtilities.swift; sourceTree = "<group>"; };
|
||||||
B86BD08323399ACF000F5AE3 /* Modal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Modal.swift; sourceTree = "<group>"; };
|
B86BD08323399ACF000F5AE3 /* Modal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Modal.swift; sourceTree = "<group>"; };
|
||||||
B86BD08523399CEF000F5AE3 /* SeedModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedModal.swift; sourceTree = "<group>"; };
|
B86BD08523399CEF000F5AE3 /* SeedModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeedModal.swift; sourceTree = "<group>"; };
|
||||||
B885D5F3233491AB00EE0D8E /* DeviceLinkingModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceLinkingModal.swift; sourceTree = "<group>"; };
|
B885D5F3233491AB00EE0D8E /* DeviceLinkingModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceLinkingModal.swift; sourceTree = "<group>"; };
|
||||||
|
@ -2776,6 +2778,7 @@
|
||||||
B8CCF63C239757DB0091D419 /* Utilities */ = {
|
B8CCF63C239757DB0091D419 /* Utilities */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
B8544E3023D16CA500299F14 /* DeviceUtilities.swift */,
|
||||||
B84664F4235022F30083A1CD /* MentionUtilities.swift */,
|
B84664F4235022F30083A1CD /* MentionUtilities.swift */,
|
||||||
B885D5F52334A32100EE0D8E /* UIView+Constraints.swift */,
|
B885D5F52334A32100EE0D8E /* UIView+Constraints.swift */,
|
||||||
B886B4A82398BA1500211ABE /* QRCode.swift */,
|
B886B4A82398BA1500211ABE /* QRCode.swift */,
|
||||||
|
@ -3947,6 +3950,7 @@
|
||||||
34B3F8801E8DF1700035BE1A /* InviteFlow.swift in Sources */,
|
34B3F8801E8DF1700035BE1A /* InviteFlow.swift in Sources */,
|
||||||
B85357C523A1F13800AAF6CD /* LinkDeviceVC.swift in Sources */,
|
B85357C523A1F13800AAF6CD /* LinkDeviceVC.swift in Sources */,
|
||||||
457C87B82032645C008D52D6 /* DebugUINotifications.swift in Sources */,
|
457C87B82032645C008D52D6 /* DebugUINotifications.swift in Sources */,
|
||||||
|
B8544E3123D16CA500299F14 /* DeviceUtilities.swift in Sources */,
|
||||||
4C21D5D8223AC60F00EF8A77 /* PhotoCapture.swift in Sources */,
|
4C21D5D8223AC60F00EF8A77 /* PhotoCapture.swift in Sources */,
|
||||||
4C13C9F620E57BA30089A98B /* ColorPickerViewController.swift in Sources */,
|
4C13C9F620E57BA30089A98B /* ColorPickerViewController.swift in Sources */,
|
||||||
B8162F0522892C5F00D46544 /* FriendRequestViewDelegate.swift in Sources */,
|
B8162F0522892C5F00D46544 /* FriendRequestViewDelegate.swift in Sources */,
|
||||||
|
|
|
@ -36,7 +36,7 @@ final class TextField : UITextField {
|
||||||
|
|
||||||
override func textRect(forBounds bounds: CGRect) -> CGRect {
|
override func textRect(forBounds bounds: CGRect) -> CGRect {
|
||||||
if usesDefaultHeight {
|
if usesDefaultHeight {
|
||||||
return bounds.insetBy(dx: Values.largeSpacing, dy: Values.largeSpacing)
|
return bounds.insetBy(dx: isSmallScreen ? Values.mediumSpacing : Values.largeSpacing, dy: isSmallScreen ? Values.smallSpacing : Values.largeSpacing)
|
||||||
} else {
|
} else {
|
||||||
return bounds.insetBy(dx: Values.mediumSpacing, dy: Values.smallSpacing)
|
return bounds.insetBy(dx: Values.mediumSpacing, dy: Values.smallSpacing)
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ final class TextField : UITextField {
|
||||||
|
|
||||||
override func editingRect(forBounds bounds: CGRect) -> CGRect {
|
override func editingRect(forBounds bounds: CGRect) -> CGRect {
|
||||||
if usesDefaultHeight {
|
if usesDefaultHeight {
|
||||||
return bounds.insetBy(dx: Values.largeSpacing, dy: Values.largeSpacing)
|
return bounds.insetBy(dx: isSmallScreen ? Values.mediumSpacing : Values.largeSpacing, dy: isSmallScreen ? Values.smallSpacing : Values.largeSpacing)
|
||||||
} else {
|
} else {
|
||||||
return bounds.insetBy(dx: Values.mediumSpacing, dy: Values.smallSpacing)
|
return bounds.insetBy(dx: Values.mediumSpacing, dy: Values.smallSpacing)
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ final class Values : NSObject {
|
||||||
@objc static let massiveFontSize = CGFloat(50)
|
@objc static let massiveFontSize = CGFloat(50)
|
||||||
|
|
||||||
// MARK: - Element Sizes
|
// MARK: - Element Sizes
|
||||||
@objc static let smallButtonHeight = CGFloat(27)
|
@objc static let smallButtonHeight = isSmallScreen ? CGFloat(24) : CGFloat(27)
|
||||||
@objc static let mediumButtonHeight = CGFloat(34)
|
@objc static let mediumButtonHeight = isSmallScreen ? CGFloat(30) : CGFloat(34)
|
||||||
@objc static let largeButtonHeight = CGFloat(45)
|
@objc static let largeButtonHeight = isSmallScreen ? CGFloat(40) : CGFloat(45)
|
||||||
@objc static let accentLineThickness = CGFloat(4)
|
@objc static let accentLineThickness = CGFloat(4)
|
||||||
@objc static let verySmallProfilePictureSize = CGFloat(26)
|
@objc static let verySmallProfilePictureSize = CGFloat(26)
|
||||||
@objc static let smallProfilePictureSize = CGFloat(35)
|
@objc static let smallProfilePictureSize = CGFloat(35)
|
||||||
|
@ -31,18 +31,18 @@ final class Values : NSObject {
|
||||||
@objc static let conversationCellStatusIndicatorSize = CGFloat(14)
|
@objc static let conversationCellStatusIndicatorSize = CGFloat(14)
|
||||||
@objc static let searchBarHeight = CGFloat(36)
|
@objc static let searchBarHeight = CGFloat(36)
|
||||||
@objc static let newConversationButtonSize = CGFloat(45)
|
@objc static let newConversationButtonSize = CGFloat(45)
|
||||||
@objc static let textFieldHeight = CGFloat(80)
|
@objc static let textFieldHeight = isSmallScreen ? CGFloat(48) : CGFloat(80)
|
||||||
@objc static let textFieldCornerRadius = CGFloat(8)
|
@objc static let textFieldCornerRadius = CGFloat(8)
|
||||||
@objc static let separatorLabelHeight = CGFloat(24)
|
@objc static let separatorLabelHeight = CGFloat(24)
|
||||||
@objc static var separatorThickness: CGFloat { return 1 / UIScreen.main.scale }
|
@objc static var separatorThickness: CGFloat { return 1 / UIScreen.main.scale }
|
||||||
@objc static let tabBarHeight = CGFloat(48)
|
@objc static let tabBarHeight = isSmallScreen ? CGFloat(32) : CGFloat(48)
|
||||||
@objc static let settingButtonHeight = CGFloat(75)
|
@objc static let settingButtonHeight = isSmallScreen ? CGFloat(52) : CGFloat(75)
|
||||||
@objc static let modalCornerRadius = CGFloat(10)
|
@objc static let modalCornerRadius = CGFloat(10)
|
||||||
@objc static let modalButtonCornerRadius = CGFloat(5)
|
@objc static let modalButtonCornerRadius = CGFloat(5)
|
||||||
@objc static let fakeChatBubbleWidth = CGFloat(224)
|
@objc static let fakeChatBubbleWidth = CGFloat(224)
|
||||||
@objc static let fakeChatBubbleCornerRadius = CGFloat(10)
|
@objc static let fakeChatBubbleCornerRadius = CGFloat(10)
|
||||||
@objc static let fakeChatViewHeight = CGFloat(234)
|
@objc static let fakeChatViewHeight = CGFloat(234)
|
||||||
@objc static var composeViewTextFieldBorderThickness: CGFloat { return 1 / UIScreen.main.scale }
|
@objc static let composeViewTextFieldBorderThickness = 1 / UIScreen.main.scale
|
||||||
@objc static let messageBubbleCornerRadius: CGFloat = 10
|
@objc static let messageBubbleCornerRadius: CGFloat = 10
|
||||||
@objc static let progressBarThickness: CGFloat = 2
|
@objc static let progressBarThickness: CGFloat = 2
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ final class Values : NSObject {
|
||||||
@objc static let veryLargeSpacing = CGFloat(35)
|
@objc static let veryLargeSpacing = CGFloat(35)
|
||||||
@objc static let massiveSpacing = CGFloat(64)
|
@objc static let massiveSpacing = CGFloat(64)
|
||||||
@objc static let newConversationButtonBottomOffset = CGFloat(52)
|
@objc static let newConversationButtonBottomOffset = CGFloat(52)
|
||||||
@objc static let onboardingButtonBottomOffset = CGFloat(72)
|
@objc static let onboardingButtonBottomOffset = isSmallScreen ? CGFloat(52) : CGFloat(72)
|
||||||
|
|
||||||
// MARK: - Animation Values
|
// MARK: - Animation Values
|
||||||
@objc static let fakeChatStartDelay: TimeInterval = 2
|
@objc static let fakeChatStartDelay: TimeInterval = 2
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
|
||||||
|
var isSmallScreen: Bool {
|
||||||
|
return (UIScreen.main.bounds.height - 568) < 1
|
||||||
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
enum QRCode {
|
enum QRCode {
|
||||||
|
|
||||||
static func generate(for string: String, hasBackground: Bool = false) -> UIImage {
|
static func generate(for string: String, isInverted: Bool = false, hasBackground: Bool = false) -> UIImage {
|
||||||
let data = string.data(using: .utf8)
|
let data = string.data(using: .utf8)
|
||||||
var qrCodeAsCIImage: CIImage
|
var qrCodeAsCIImage: CIImage
|
||||||
let filter1 = CIFilter(name: "CIQRCodeGenerator")!
|
let filter1 = CIFilter(name: "CIQRCodeGenerator")!
|
||||||
|
@ -10,8 +10,8 @@ enum QRCode {
|
||||||
if hasBackground {
|
if hasBackground {
|
||||||
let filter2 = CIFilter(name: "CIFalseColor")!
|
let filter2 = CIFilter(name: "CIFalseColor")!
|
||||||
filter2.setValue(qrCodeAsCIImage, forKey: "inputImage")
|
filter2.setValue(qrCodeAsCIImage, forKey: "inputImage")
|
||||||
filter2.setValue(CIColor(color: UIColor(hex: 0xFFFFFF)), forKey: "inputColor0")
|
filter2.setValue(CIColor(color: UIColor(hex: isInverted ? 0xFFFFFF : 0x000000)), forKey: "inputColor0")
|
||||||
filter2.setValue(CIColor(color: UIColor(hex: 0x1B1B1B)), forKey: "inputColor1")
|
filter2.setValue(CIColor(color: UIColor(hex: isInverted ? 0x1B1B1B : 0xFFFFFF)), forKey: "inputColor1")
|
||||||
qrCodeAsCIImage = filter2.outputImage!
|
qrCodeAsCIImage = filter2.outputImage!
|
||||||
} else {
|
} else {
|
||||||
let filter2 = CIFilter(name: "CIColorInvert")!
|
let filter2 = CIFilter(name: "CIColorInvert")!
|
||||||
|
|
|
@ -107,7 +107,7 @@ final class DeviceLinkingModal : Modal, DeviceLinkingSessionDelegate {
|
||||||
case .master:
|
case .master:
|
||||||
qrCodeImageView.set(.height, to: 128)
|
qrCodeImageView.set(.height, to: 128)
|
||||||
let hexEncodedPublicKey = OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey
|
let hexEncodedPublicKey = OWSIdentityManager.shared().identityKeyPair()!.hexEncodedPublicKey
|
||||||
qrCodeImageView.image = QRCode.generate(for: hexEncodedPublicKey)
|
qrCodeImageView.image = QRCode.generate(for: hexEncodedPublicKey, hasBackground: true)
|
||||||
case .slave:
|
case .slave:
|
||||||
spinner.set(.height, to: 64)
|
spinner.set(.height, to: 64)
|
||||||
spinner.startAnimating()
|
spinner.startAnimating()
|
||||||
|
|
|
@ -37,7 +37,7 @@ final class DisplayNameVC : UIViewController {
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.veryLargeFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? Values.largeFontSize : Values.veryLargeFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Pick your display name", comment: "")
|
titleLabel.text = NSLocalizedString("Pick your display name", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
|
@ -51,9 +51,9 @@ final class DisplayNameVC : UIViewController {
|
||||||
// Set up spacers
|
// Set up spacers
|
||||||
let topSpacer = UIView.vStretchingSpacer()
|
let topSpacer = UIView.vStretchingSpacer()
|
||||||
let spacer1 = UIView()
|
let spacer1 = UIView()
|
||||||
spacer1HeightConstraint = spacer1.set(.height, to: Values.veryLargeSpacing)
|
spacer1HeightConstraint = spacer1.set(.height, to: isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing)
|
||||||
let spacer2 = UIView()
|
let spacer2 = UIView()
|
||||||
spacer2HeightConstraint = spacer2.set(.height, to: Values.veryLargeSpacing)
|
spacer2HeightConstraint = spacer2.set(.height, to: isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing)
|
||||||
let bottomSpacer = UIView.vStretchingSpacer()
|
let bottomSpacer = UIView.vStretchingSpacer()
|
||||||
let registerButtonBottomOffsetSpacer = UIView()
|
let registerButtonBottomOffsetSpacer = UIView()
|
||||||
registerButtonBottomOffsetConstraint = registerButtonBottomOffsetSpacer.set(.height, to: Values.onboardingButtonBottomOffset)
|
registerButtonBottomOffsetConstraint = registerButtonBottomOffsetSpacer.set(.height, to: Values.onboardingButtonBottomOffset)
|
||||||
|
@ -117,9 +117,9 @@ final class DisplayNameVC : UIViewController {
|
||||||
@objc private func handleKeyboardWillChangeFrameNotification(_ notification: Notification) {
|
@objc private func handleKeyboardWillChangeFrameNotification(_ notification: Notification) {
|
||||||
guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
|
guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
|
||||||
bottomConstraint.constant = -newHeight // Negative due to how the constraint is set up
|
bottomConstraint.constant = -newHeight // Negative due to how the constraint is set up
|
||||||
registerButtonBottomOffsetConstraint.constant = Values.largeSpacing
|
registerButtonBottomOffsetConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.largeSpacing
|
||||||
spacer1HeightConstraint.constant = Values.mediumSpacing
|
spacer1HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
spacer2HeightConstraint.constant = Values.mediumSpacing
|
spacer2HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
UIView.animate(withDuration: 0.25) {
|
UIView.animate(withDuration: 0.25) {
|
||||||
self.view.layoutIfNeeded()
|
self.view.layoutIfNeeded()
|
||||||
}
|
}
|
||||||
|
@ -128,8 +128,8 @@ final class DisplayNameVC : UIViewController {
|
||||||
@objc private func handleKeyboardWillHideNotification(_ notification: Notification) {
|
@objc private func handleKeyboardWillHideNotification(_ notification: Notification) {
|
||||||
bottomConstraint.constant = 0
|
bottomConstraint.constant = 0
|
||||||
registerButtonBottomOffsetConstraint.constant = Values.onboardingButtonBottomOffset
|
registerButtonBottomOffsetConstraint.constant = Values.onboardingButtonBottomOffset
|
||||||
spacer1HeightConstraint.constant = Values.veryLargeSpacing
|
spacer1HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing
|
||||||
spacer2HeightConstraint.constant = Values.veryLargeSpacing
|
spacer2HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing
|
||||||
UIView.animate(withDuration: 0.25) {
|
UIView.animate(withDuration: 0.25) {
|
||||||
self.view.layoutIfNeeded()
|
self.view.layoutIfNeeded()
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ final class LandingVC : UIViewController, LinkDeviceVCDelegate, DeviceLinkingMod
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.veryLargeFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? Values.largeFontSize : Values.veryLargeFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Your Session begins here...", comment: "")
|
titleLabel.text = NSLocalizedString("Your Session begins here...", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
|
@ -79,11 +79,11 @@ final class LandingVC : UIViewController, LinkDeviceVCDelegate, DeviceLinkingMod
|
||||||
linkButton.pin(.leading, to: .leading, of: linkButtonContainer, withInset: Values.massiveSpacing)
|
linkButton.pin(.leading, to: .leading, of: linkButtonContainer, withInset: Values.massiveSpacing)
|
||||||
linkButton.pin(.top, to: .top, of: linkButtonContainer)
|
linkButton.pin(.top, to: .top, of: linkButtonContainer)
|
||||||
linkButtonContainer.pin(.trailing, to: .trailing, of: linkButton, withInset: Values.massiveSpacing)
|
linkButtonContainer.pin(.trailing, to: .trailing, of: linkButton, withInset: Values.massiveSpacing)
|
||||||
linkButtonContainer.pin(.bottom, to: .bottom, of: linkButton, withInset: 10)
|
linkButtonContainer.pin(.bottom, to: .bottom, of: linkButton, withInset: isSmallScreen ? 6 : 10)
|
||||||
// Set up button stack view
|
// Set up button stack view
|
||||||
let buttonStackView = UIStackView(arrangedSubviews: [ registerButton, restoreButton ])
|
let buttonStackView = UIStackView(arrangedSubviews: [ registerButton, restoreButton ])
|
||||||
buttonStackView.axis = .vertical
|
buttonStackView.axis = .vertical
|
||||||
buttonStackView.spacing = Values.mediumSpacing
|
buttonStackView.spacing = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
buttonStackView.alignment = .fill
|
buttonStackView.alignment = .fill
|
||||||
// Set up button stack view container
|
// Set up button stack view container
|
||||||
let buttonStackViewContainer = UIView()
|
let buttonStackViewContainer = UIView()
|
||||||
|
@ -93,7 +93,7 @@ final class LandingVC : UIViewController, LinkDeviceVCDelegate, DeviceLinkingMod
|
||||||
buttonStackViewContainer.pin(.trailing, to: .trailing, of: buttonStackView, withInset: Values.massiveSpacing)
|
buttonStackViewContainer.pin(.trailing, to: .trailing, of: buttonStackView, withInset: Values.massiveSpacing)
|
||||||
buttonStackViewContainer.pin(.bottom, to: .bottom, of: buttonStackView)
|
buttonStackViewContainer.pin(.bottom, to: .bottom, of: buttonStackView)
|
||||||
// Set up main stack view
|
// Set up main stack view
|
||||||
let mainStackView = UIStackView(arrangedSubviews: [ topSpacer, titleLabelContainer, UIView.spacer(withHeight: Values.mediumSpacing), fakeChatView, bottomSpacer, buttonStackViewContainer, linkButtonContainer ])
|
let mainStackView = UIStackView(arrangedSubviews: [ topSpacer, titleLabelContainer, UIView.spacer(withHeight: isSmallScreen ? Values.smallSpacing : Values.mediumSpacing), fakeChatView, bottomSpacer, buttonStackViewContainer, linkButtonContainer ])
|
||||||
mainStackView.axis = .vertical
|
mainStackView.axis = .vertical
|
||||||
mainStackView.alignment = .fill
|
mainStackView.alignment = .fill
|
||||||
view.addSubview(mainStackView)
|
view.addSubview(mainStackView)
|
||||||
|
|
|
@ -148,7 +148,7 @@ private final class EnterPublicKeyVC : UIViewController {
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.veryLargeFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? Values.largeFontSize : Values.veryLargeFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Link your device", comment: "")
|
titleLabel.text = NSLocalizedString("Link your device", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
|
@ -165,14 +165,14 @@ private final class EnterPublicKeyVC : UIViewController {
|
||||||
linkButton.addTarget(self, action: #selector(requestDeviceLink), for: UIControl.Event.touchUpInside)
|
linkButton.addTarget(self, action: #selector(requestDeviceLink), for: UIControl.Event.touchUpInside)
|
||||||
let linkButtonContainer = UIView()
|
let linkButtonContainer = UIView()
|
||||||
linkButtonContainer.addSubview(linkButton)
|
linkButtonContainer.addSubview(linkButton)
|
||||||
linkButton.pin(.leading, to: .leading, of: linkButtonContainer, withInset: 80)
|
linkButton.pin(.leading, to: .leading, of: linkButtonContainer, withInset: isSmallScreen ? 48 : 80)
|
||||||
linkButton.pin(.top, to: .top, of: linkButtonContainer)
|
linkButton.pin(.top, to: .top, of: linkButtonContainer)
|
||||||
linkButtonContainer.pin(.trailing, to: .trailing, of: linkButton, withInset: 80)
|
linkButtonContainer.pin(.trailing, to: .trailing, of: linkButton, withInset: isSmallScreen ? 48 : 80)
|
||||||
linkButtonBottomConstraint = linkButtonContainer.pin(.bottom, to: .bottom, of: linkButton, withInset: Values.veryLargeSpacing)
|
linkButtonBottomConstraint = linkButtonContainer.pin(.bottom, to: .bottom, of: linkButton, withInset: Values.veryLargeSpacing)
|
||||||
// Set up top stack view
|
// Set up top stack view
|
||||||
let topStackView = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, publicKeyTextField ])
|
let topStackView = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, publicKeyTextField ])
|
||||||
topStackView.axis = .vertical
|
topStackView.axis = .vertical
|
||||||
topStackView.spacing = Values.largeSpacing
|
topStackView.spacing = isSmallScreen ? Values.smallSpacing : Values.largeSpacing
|
||||||
// Set up spacers
|
// Set up spacers
|
||||||
let topSpacer = UIView.vStretchingSpacer()
|
let topSpacer = UIView.vStretchingSpacer()
|
||||||
let bottomSpacer = UIView.vStretchingSpacer()
|
let bottomSpacer = UIView.vStretchingSpacer()
|
||||||
|
@ -216,7 +216,7 @@ private final class EnterPublicKeyVC : UIViewController {
|
||||||
@objc private func handleKeyboardWillChangeFrameNotification(_ notification: Notification) {
|
@objc private func handleKeyboardWillChangeFrameNotification(_ notification: Notification) {
|
||||||
guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
|
guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
|
||||||
bottomConstraint.constant = -newHeight
|
bottomConstraint.constant = -newHeight
|
||||||
linkButtonBottomConstraint.constant = Values.mediumSpacing
|
linkButtonBottomConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
UIView.animate(withDuration: 0.25) {
|
UIView.animate(withDuration: 0.25) {
|
||||||
self.view.layoutIfNeeded()
|
self.view.layoutIfNeeded()
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,18 +160,18 @@ private final class ViewMyQRCodeVC : UIViewController {
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.massiveFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? CGFloat(40) : Values.massiveFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Scan Me", comment: "")
|
titleLabel.text = NSLocalizedString("Scan Me", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.textAlignment = .center
|
titleLabel.textAlignment = .center
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
// Set up QR code image view
|
// Set up QR code image view
|
||||||
let qrCodeImageView = UIImageView()
|
let qrCodeImageView = UIImageView()
|
||||||
let qrCode = QRCode.generate(for: userHexEncodedPublicKey)
|
let qrCode = QRCode.generate(for: userHexEncodedPublicKey, hasBackground: true)
|
||||||
qrCodeImageView.image = qrCode
|
qrCodeImageView.image = qrCode
|
||||||
qrCodeImageView.contentMode = .scaleAspectFit
|
qrCodeImageView.contentMode = .scaleAspectFit
|
||||||
qrCodeImageView.set(.height, to: 240)
|
qrCodeImageView.set(.height, to: isSmallScreen ? 180 : 240)
|
||||||
qrCodeImageView.set(.width, to: 240)
|
qrCodeImageView.set(.width, to: isSmallScreen ? 180 : 240)
|
||||||
// Set up QR code image view container
|
// Set up QR code image view container
|
||||||
let qrCodeImageViewContainer = UIView()
|
let qrCodeImageViewContainer = UIView()
|
||||||
qrCodeImageViewContainer.addSubview(qrCodeImageView)
|
qrCodeImageViewContainer.addSubview(qrCodeImageView)
|
||||||
|
@ -203,7 +203,7 @@ private final class ViewMyQRCodeVC : UIViewController {
|
||||||
// Set up stack view
|
// Set up stack view
|
||||||
let stackView = UIStackView(arrangedSubviews: [ titleLabel, qrCodeImageViewContainer, explanationLabel, shareButtonContainer, UIView.vStretchingSpacer() ])
|
let stackView = UIStackView(arrangedSubviews: [ titleLabel, qrCodeImageViewContainer, explanationLabel, shareButtonContainer, UIView.vStretchingSpacer() ])
|
||||||
stackView.axis = .vertical
|
stackView.axis = .vertical
|
||||||
stackView.spacing = Values.largeSpacing
|
stackView.spacing = isSmallScreen ? Values.mediumSpacing : Values.largeSpacing
|
||||||
stackView.alignment = .fill
|
stackView.alignment = .fill
|
||||||
stackView.layoutMargins = UIEdgeInsets(top: Values.mediumSpacing, left: Values.largeSpacing, bottom: Values.mediumSpacing, right: Values.largeSpacing)
|
stackView.layoutMargins = UIEdgeInsets(top: Values.mediumSpacing, left: Values.largeSpacing, bottom: Values.mediumSpacing, right: Values.largeSpacing)
|
||||||
stackView.isLayoutMarginsRelativeArrangement = true
|
stackView.isLayoutMarginsRelativeArrangement = true
|
||||||
|
|
|
@ -7,7 +7,7 @@ final class RegisterVC : UIViewController {
|
||||||
private lazy var publicKeyLabel: UILabel = {
|
private lazy var publicKeyLabel: UILabel = {
|
||||||
let result = UILabel()
|
let result = UILabel()
|
||||||
result.textColor = Colors.text
|
result.textColor = Colors.text
|
||||||
result.font = Fonts.spaceMono(ofSize: Values.largeFontSize)
|
result.font = Fonts.spaceMono(ofSize: isSmallScreen ? Values.mediumFontSize : Values.largeFontSize)
|
||||||
result.numberOfLines = 0
|
result.numberOfLines = 0
|
||||||
result.lineBreakMode = .byCharWrapping
|
result.lineBreakMode = .byCharWrapping
|
||||||
return result
|
return result
|
||||||
|
@ -60,7 +60,7 @@ final class RegisterVC : UIViewController {
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.veryLargeFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? Values.largeFontSize : Values.veryLargeFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Say hello to your Session ID", comment: "")
|
titleLabel.text = NSLocalizedString("Say hello to your Session ID", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
|
@ -89,7 +89,7 @@ final class RegisterVC : UIViewController {
|
||||||
// Set up button stack view
|
// Set up button stack view
|
||||||
let buttonStackView = UIStackView(arrangedSubviews: [ registerButton, copyPublicKeyButton ])
|
let buttonStackView = UIStackView(arrangedSubviews: [ registerButton, copyPublicKeyButton ])
|
||||||
buttonStackView.axis = .vertical
|
buttonStackView.axis = .vertical
|
||||||
buttonStackView.spacing = Values.mediumSpacing
|
buttonStackView.spacing = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
buttonStackView.alignment = .fill
|
buttonStackView.alignment = .fill
|
||||||
// Set up button stack view container
|
// Set up button stack view container
|
||||||
let buttonStackViewContainer = UIView()
|
let buttonStackViewContainer = UIView()
|
||||||
|
@ -109,11 +109,11 @@ final class RegisterVC : UIViewController {
|
||||||
legalLabel.pin(.leading, to: .leading, of: legalLabelContainer, withInset: Values.massiveSpacing)
|
legalLabel.pin(.leading, to: .leading, of: legalLabelContainer, withInset: Values.massiveSpacing)
|
||||||
legalLabel.pin(.top, to: .top, of: legalLabelContainer)
|
legalLabel.pin(.top, to: .top, of: legalLabelContainer)
|
||||||
legalLabelContainer.pin(.trailing, to: .trailing, of: legalLabel, withInset: Values.massiveSpacing)
|
legalLabelContainer.pin(.trailing, to: .trailing, of: legalLabel, withInset: Values.massiveSpacing)
|
||||||
legalLabelContainer.pin(.bottom, to: .bottom, of: legalLabel, withInset: 10)
|
legalLabelContainer.pin(.bottom, to: .bottom, of: legalLabel, withInset: isSmallScreen ? 6 : 10)
|
||||||
// Set up top stack view
|
// Set up top stack view
|
||||||
let topStackView = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, publicKeyLabelContainer ])
|
let topStackView = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, publicKeyLabelContainer ])
|
||||||
topStackView.axis = .vertical
|
topStackView.axis = .vertical
|
||||||
topStackView.spacing = Values.veryLargeSpacing
|
topStackView.spacing = isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing
|
||||||
topStackView.alignment = .fill
|
topStackView.alignment = .fill
|
||||||
// Set up top stack view container
|
// Set up top stack view container
|
||||||
let topStackViewContainer = UIView()
|
let topStackViewContainer = UIView()
|
||||||
|
|
|
@ -53,7 +53,7 @@ final class RestoreVC : UIViewController {
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.veryLargeFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? Values.largeFontSize : Values.veryLargeFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Restore your account", comment: "")
|
titleLabel.text = NSLocalizedString("Restore your account", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
|
@ -71,11 +71,11 @@ final class RestoreVC : UIViewController {
|
||||||
// Set up spacers
|
// Set up spacers
|
||||||
let topSpacer = UIView.vStretchingSpacer()
|
let topSpacer = UIView.vStretchingSpacer()
|
||||||
let spacer1 = UIView()
|
let spacer1 = UIView()
|
||||||
spacer1HeightConstraint = spacer1.set(.height, to: Values.veryLargeSpacing)
|
spacer1HeightConstraint = spacer1.set(.height, to: isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing)
|
||||||
let spacer2 = UIView()
|
let spacer2 = UIView()
|
||||||
spacer2HeightConstraint = spacer2.set(.height, to: Values.veryLargeSpacing)
|
spacer2HeightConstraint = spacer2.set(.height, to: isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing)
|
||||||
let spacer3 = UIView()
|
let spacer3 = UIView()
|
||||||
spacer3HeightConstraint = spacer3.set(.height, to: Values.veryLargeSpacing)
|
spacer3HeightConstraint = spacer3.set(.height, to: isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing)
|
||||||
let bottomSpacer = UIView.vStretchingSpacer()
|
let bottomSpacer = UIView.vStretchingSpacer()
|
||||||
let restoreButtonBottomOffsetSpacer = UIView()
|
let restoreButtonBottomOffsetSpacer = UIView()
|
||||||
restoreButtonBottomOffsetConstraint = restoreButtonBottomOffsetSpacer.set(.height, to: Values.onboardingButtonBottomOffset)
|
restoreButtonBottomOffsetConstraint = restoreButtonBottomOffsetSpacer.set(.height, to: Values.onboardingButtonBottomOffset)
|
||||||
|
@ -139,10 +139,10 @@ final class RestoreVC : UIViewController {
|
||||||
@objc private func handleKeyboardWillChangeFrameNotification(_ notification: Notification) {
|
@objc private func handleKeyboardWillChangeFrameNotification(_ notification: Notification) {
|
||||||
guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
|
guard let newHeight = (notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue)?.cgRectValue.size.height else { return }
|
||||||
bottomConstraint.constant = -newHeight // Negative due to how the constraint is set up
|
bottomConstraint.constant = -newHeight // Negative due to how the constraint is set up
|
||||||
restoreButtonBottomOffsetConstraint.constant = Values.largeSpacing
|
restoreButtonBottomOffsetConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.largeSpacing
|
||||||
spacer1HeightConstraint.constant = Values.mediumSpacing
|
spacer1HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
spacer2HeightConstraint.constant = Values.mediumSpacing
|
spacer2HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
spacer3HeightConstraint.constant = Values.mediumSpacing
|
spacer3HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.mediumSpacing
|
||||||
UIView.animate(withDuration: 0.25) {
|
UIView.animate(withDuration: 0.25) {
|
||||||
self.view.layoutIfNeeded()
|
self.view.layoutIfNeeded()
|
||||||
}
|
}
|
||||||
|
@ -151,9 +151,9 @@ final class RestoreVC : UIViewController {
|
||||||
@objc private func handleKeyboardWillHideNotification(_ notification: Notification) {
|
@objc private func handleKeyboardWillHideNotification(_ notification: Notification) {
|
||||||
bottomConstraint.constant = 0
|
bottomConstraint.constant = 0
|
||||||
restoreButtonBottomOffsetConstraint.constant = Values.onboardingButtonBottomOffset
|
restoreButtonBottomOffsetConstraint.constant = Values.onboardingButtonBottomOffset
|
||||||
spacer1HeightConstraint.constant = Values.veryLargeSpacing
|
spacer1HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing
|
||||||
spacer2HeightConstraint.constant = Values.veryLargeSpacing
|
spacer2HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing
|
||||||
spacer3HeightConstraint.constant = Values.veryLargeSpacing
|
spacer3HeightConstraint.constant = isSmallScreen ? Values.smallSpacing : Values.veryLargeSpacing
|
||||||
UIView.animate(withDuration: 0.25) {
|
UIView.animate(withDuration: 0.25) {
|
||||||
self.view.layoutIfNeeded()
|
self.view.layoutIfNeeded()
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,7 +80,7 @@ final class SeedVCV2 : UIViewController {
|
||||||
// Set up title label
|
// Set up title label
|
||||||
let titleLabel = UILabel()
|
let titleLabel = UILabel()
|
||||||
titleLabel.textColor = Colors.text
|
titleLabel.textColor = Colors.text
|
||||||
titleLabel.font = .boldSystemFont(ofSize: Values.veryLargeFontSize)
|
titleLabel.font = .boldSystemFont(ofSize: isSmallScreen ? Values.largeFontSize : Values.veryLargeFontSize)
|
||||||
titleLabel.text = NSLocalizedString("Meet your recovery phrase", comment: "")
|
titleLabel.text = NSLocalizedString("Meet your recovery phrase", comment: "")
|
||||||
titleLabel.numberOfLines = 0
|
titleLabel.numberOfLines = 0
|
||||||
titleLabel.lineBreakMode = .byWordWrapping
|
titleLabel.lineBreakMode = .byWordWrapping
|
||||||
|
@ -107,7 +107,7 @@ final class SeedVCV2 : UIViewController {
|
||||||
// Set up call to action label
|
// Set up call to action label
|
||||||
let callToActionLabel = UILabel()
|
let callToActionLabel = UILabel()
|
||||||
callToActionLabel.textColor = Colors.text.withAlphaComponent(Values.unimportantElementOpacity)
|
callToActionLabel.textColor = Colors.text.withAlphaComponent(Values.unimportantElementOpacity)
|
||||||
callToActionLabel.font = .systemFont(ofSize: Values.mediumFontSize)
|
callToActionLabel.font = .systemFont(ofSize: isSmallScreen ? Values.smallFontSize : Values.mediumFontSize)
|
||||||
callToActionLabel.text = NSLocalizedString("Hold to reveal", comment: "")
|
callToActionLabel.text = NSLocalizedString("Hold to reveal", comment: "")
|
||||||
callToActionLabel.textAlignment = .center
|
callToActionLabel.textAlignment = .center
|
||||||
let callToActionLabelGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(revealMnemonic))
|
let callToActionLabelGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(revealMnemonic))
|
||||||
|
@ -127,7 +127,7 @@ final class SeedVCV2 : UIViewController {
|
||||||
// Set up top stack view
|
// Set up top stack view
|
||||||
let topStackView = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, mnemonicLabelContainer, callToActionLabel ])
|
let topStackView = UIStackView(arrangedSubviews: [ titleLabel, explanationLabel, mnemonicLabelContainer, callToActionLabel ])
|
||||||
topStackView.axis = .vertical
|
topStackView.axis = .vertical
|
||||||
topStackView.spacing = Values.largeSpacing
|
topStackView.spacing = isSmallScreen ? Values.smallSpacing : Values.largeSpacing
|
||||||
topStackView.alignment = .fill
|
topStackView.alignment = .fill
|
||||||
// Set up top stack view container
|
// Set up top stack view container
|
||||||
let topStackViewContainer = UIView()
|
let topStackViewContainer = UIView()
|
||||||
|
@ -145,7 +145,7 @@ final class SeedVCV2 : UIViewController {
|
||||||
let mainStackView = UIStackView(arrangedSubviews: [ topSpacer, topStackViewContainer, bottomSpacer, copyButtonContainer ])
|
let mainStackView = UIStackView(arrangedSubviews: [ topSpacer, topStackViewContainer, bottomSpacer, copyButtonContainer ])
|
||||||
mainStackView.axis = .vertical
|
mainStackView.axis = .vertical
|
||||||
mainStackView.alignment = .fill
|
mainStackView.alignment = .fill
|
||||||
mainStackView.layoutMargins = UIEdgeInsets(top: 0, leading: 0, bottom: Values.mediumSpacing, trailing: 0)
|
mainStackView.layoutMargins = UIEdgeInsets(top: 0, leading: 0, bottom: isSmallScreen ? Values.smallSpacing : Values.mediumSpacing, trailing: 0)
|
||||||
mainStackView.isLayoutMarginsRelativeArrangement = true
|
mainStackView.isLayoutMarginsRelativeArrangement = true
|
||||||
view.addSubview(mainStackView)
|
view.addSubview(mainStackView)
|
||||||
mainStackView.pin(.leading, to: .leading, of: view)
|
mainStackView.pin(.leading, to: .leading, of: view)
|
||||||
|
|
|
@ -103,7 +103,7 @@ final class SettingsVC : UIViewController, AvatarViewHelperDelegate {
|
||||||
// Set up public key label
|
// Set up public key label
|
||||||
let publicKeyLabel = UILabel()
|
let publicKeyLabel = UILabel()
|
||||||
publicKeyLabel.textColor = Colors.text
|
publicKeyLabel.textColor = Colors.text
|
||||||
publicKeyLabel.font = Fonts.spaceMono(ofSize: Values.largeFontSize)
|
publicKeyLabel.font = Fonts.spaceMono(ofSize: isSmallScreen ? Values.mediumFontSize : Values.largeFontSize)
|
||||||
publicKeyLabel.numberOfLines = 0
|
publicKeyLabel.numberOfLines = 0
|
||||||
publicKeyLabel.textAlignment = .center
|
publicKeyLabel.textAlignment = .center
|
||||||
publicKeyLabel.lineBreakMode = .byCharWrapping
|
publicKeyLabel.lineBreakMode = .byCharWrapping
|
||||||
|
|
Loading…
Reference in New Issue