fix(settings): resolve iPad menu text cropping and layout (#659) - #661
fix(settings): resolve iPad menu text cropping and layout (#659)#661prince-0408 wants to merge 1 commit into
Conversation
Thank you for the pull request! 💙The Scribe-iOS team will do our best to address your contribution as soon as we can. The following are some important points:
Note Scribe uses Conventional Comments in reviews to make sure that communication is as clear as possible. |
Maintainer ChecklistThe following is a checklist for maintainers to make sure this process goes as well as possible. Feel free to address the points below yourself in further commits if you realize that actions are needed :) |
First PR Commit Check
|
|
Thanks so much for the PR, @prince-0408! @henrikth93, can you take an initial look? |
|
praise: Thanks for the PR @prince-0408 and the review, @henrikth93 :) question: One thing that I'm wondering on here before we merge this in is why the tab bar is at the top? Is this expected for iPads? If not, could we implement that change here so we can close out that bug too? |
Thanks for the question, @andrewtavis! Yes, the tab bar appearing at the top on iPad is platform behavior on iPadOS 26, not a bug introduced by this PR. |
|
Thanks for letting me know, @prince-0408! I'll look to do a final check here in the coming days then :) |
Description
Fixes #659 where settings menu items (such as the installed keyboard list) displayed vertically cropped/squeezed text on iPad models (e.g. iPad Air 11-inch).
Screenshots
Root Causes
shortDescriptionwasnil(e.g. for installed keyboard rows),descriptionLabelwas hidden (isHidden = true) without being removed from the superview. Its Auto Layout constraints (TitleLabelPad.bottom + 8→descriptionLabel.topanddescriptionLabel.bottom→contentView.bottom - 16) remained active, forcing a minimum cell height of ~99pt.48.0pt) for cells without descriptions. ForcingTitleLabelPadinside 48pt crushed the label height down to ~8–12pt, causing severe top/bottom text cropping.Key Changes Made
InfoChildTableViewCell.swift:descriptionLabel.removeFromSuperview()whenshortDescription == nil. This breaks the active bottom constraint chain when no description is present, allowing single-line iPad cells to render at 66pt cleanly without vertical squishing.SettingsViewController.swift:tableView(_:heightForRowAt:)to return device-appropriate row heights (66.0ptbase /110.0ptwith description on iPad,48.0pt/80.0pton iPhone) with dynamic scaling support for the "Increase app text size" setting.heightForHeaderInSection) so section headers do not clip on iPad.AboutViewController.swift:tableView(_:heightForRowAt:)for iPad layout (72.0ptbase /110.0ptwith description) and text size scaling.TableViewTemplateViewController.swift:tableView(_:heightForRowAt:)for iPad layout (66.0ptbase row height) and font scale support.SelectionViewTemplateViewController.swift:tableView(_:heightForRowAt:)returning66.0ptfor iPadRadioTableViewCellitems with text size scaling support.Info.plist:<key>UIRequiresFullScreen</key><true/>so the app requests full-screen presentation mode on iPad.CC: @andrewtavis @henrikth93