diff --git a/Scribe/AboutTab/AboutViewController.swift b/Scribe/AboutTab/AboutViewController.swift
index f9067a85..9eba44aa 100644
--- a/Scribe/AboutTab/AboutViewController.swift
+++ b/Scribe/AboutTab/AboutViewController.swift
@@ -88,7 +88,13 @@ extension AboutViewController {
let setting = section.section[indexPath.row]
let hasDescription = setting.shortDescription != nil
- return hasDescription ? 80.0 : 48.0
+ let userDefaults = UserDefaults(suiteName: "group.be.scri.userDefaultsContainer")
+ let fontScale: CGFloat = userDefaults?.bool(forKey: "increaseTextSize") == true ? 1.25 : 1.0
+
+ if DeviceType.isPad {
+ return (hasDescription ? 110.0 : 72.0) * fontScale
+ }
+ return (hasDescription ? 80.0 : 48.0) * fontScale
}
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
diff --git a/Scribe/Info.plist b/Scribe/Info.plist
index 5c2f37fe..8c33a8e8 100644
--- a/Scribe/Info.plist
+++ b/Scribe/Info.plist
@@ -28,6 +28,8 @@
armv7
+ UIRequiresFullScreen
+
UIStatusBarStyle
UIStatusBarStyleLightContent
UISupportedInterfaceOrientations
diff --git a/Scribe/SettingsTab/SettingsViewController.swift b/Scribe/SettingsTab/SettingsViewController.swift
index e653c0ee..cd4c7551 100644
--- a/Scribe/SettingsTab/SettingsViewController.swift
+++ b/Scribe/SettingsTab/SettingsViewController.swift
@@ -270,26 +270,46 @@ extension SettingsViewController: UITableViewDelegate {
let setting = section.section[indexPath.row]
let hasDescription = setting.shortDescription != nil
- return hasDescription ? 80.0 : 48.0
+ let userDefaults = UserDefaults(suiteName: "group.be.scri.userDefaultsContainer")
+ let fontScale: CGFloat = userDefaults?.bool(forKey: "increaseTextSize") == true ? 1.25 : 1.0
+
+ if DeviceType.isPad {
+ return (hasDescription ? 110.0 : 66.0) * fontScale
+ }
+ return (hasDescription ? 80.0 : 48.0) * fontScale
}
- func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
- let headerView: UIView
+ func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
+ let label = UILabel()
+ label.text = tableData[section].headingTitle
+ label.font = UIFont.boldSystemFont(ofSize: fontSize * 1.1)
+ label.numberOfLines = 0
+ label.lineBreakMode = .byWordWrapping
- if let reusableHeaderView = tableView.headerView(forSection: section) {
- headerView = reusableHeaderView
- } else {
- headerView = UIView(
- frame: CGRect(x: 0, y: 0, width: parentTable.bounds.width, height: 32)
- )
- }
+ let horizontalPadding: CGFloat = 32
+ let verticalPadding: CGFloat = 16
+
+ let constrainedWidth = parentTable.bounds.width - horizontalPadding
+ let size = label.sizeThatFits(
+ CGSize(width: constrainedWidth, height: CGFloat.greatestFiniteMagnitude)
+ )
+
+ let minHeaderHeight: CGFloat = DeviceType.isPad ? 42.0 : 32.0
+ return max(size.height + verticalPadding, minHeaderHeight)
+ }
+
+ func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
+ let headerHeight = self.tableView(tableView, heightForHeaderInSection: section)
+ let headerView = UIView(
+ frame: CGRect(x: 0, y: 0, width: parentTable.bounds.width, height: headerHeight)
+ )
let label = UILabel(
frame: CGRect(
x: preferredLanguage.prefix(2) == "ar" ? -1 * headerView.bounds.width / 10 : 0,
y: 0,
width: headerView.bounds.width,
- height: 32
+ height: headerHeight
)
)
diff --git a/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift b/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift
index 5af6de00..3a2d2fdc 100644
--- a/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift
+++ b/Scribe/Views/Cells/InfoChildTableViewCell/InfoChildTableViewCell.swift
@@ -99,6 +99,7 @@ final class InfoChildTableViewCell: UITableViewCell {
} else {
descriptionLabel.text = nil
descriptionLabel.isHidden = true
+ descriptionLabel.removeFromSuperview()
}
if section.hasToggle {
diff --git a/Scribe/Views/SelectionViewTemplateViewController.swift b/Scribe/Views/SelectionViewTemplateViewController.swift
index 0113d282..2c273fe1 100644
--- a/Scribe/Views/SelectionViewTemplateViewController.swift
+++ b/Scribe/Views/SelectionViewTemplateViewController.swift
@@ -74,6 +74,14 @@ extension SelectionViewTemplateViewController {
return cell
}
+ override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
+ let fontScale: CGFloat = userDefaults.bool(forKey: "increaseTextSize") ? 1.25 : 1.0
+ if DeviceType.isPad {
+ return 66.0 * fontScale
+ }
+ return 48.0 * fontScale
+ }
+
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath) as! RadioTableViewCell
let oldLang = userDefaults.string(forKey: langCode + "TranslateLanguage") ?? "en"
diff --git a/Scribe/Views/TableViewTemplateViewController.swift b/Scribe/Views/TableViewTemplateViewController.swift
index e2c50b24..2873a59e 100644
--- a/Scribe/Views/TableViewTemplateViewController.swift
+++ b/Scribe/Views/TableViewTemplateViewController.swift
@@ -119,10 +119,12 @@ extension TableViewTemplateViewController {
let section = dataSet[indexPath.section]
let setting = section.section[indexPath.row]
+ let fontScale: CGFloat = userDefaults.bool(forKey: "increaseTextSize") ? 1.25 : 1.0
+
// If there's no description, return a fixed small height.
guard let description = setting.shortDescription
else {
- return 54.0
+ return (DeviceType.isPad ? 66.0 : 54.0) * fontScale
}
// Calculate available width for text.
@@ -156,7 +158,8 @@ extension TableViewTemplateViewController {
).height
// Return total height: title + description + padding buffer.
- return ceil(titleHeight + descHeight + 52)
+ let padding: CGFloat = DeviceType.isPad ? 64.0 : 52.0
+ return ceil((titleHeight + descHeight + padding) * fontScale)
}
override func tableView(_: UITableView, didSelectRowAt indexPath: IndexPath) {