Swift UISplitViewController MasterViewController установить ширину не работает - PullRequest
1 голос
/ 30 сентября 2019

Я работаю над приложением, чтобы иметь разделенное представление, и пока оно работает нормально, но невозможно установить ширину мастер-контроллера с помощью предпочитаемым параметром PrimaryColumnWidthFraction. Другой экран в приложении уже содержит разделенное представление, и там нормально работает установка ширины с помощью preferencesPrimaryColumnWidthFraction (этот экран был построен некоторое время назад), и при сравнении обоих экранов я не могу найти различий в раскадровках, которые бы объяснялиэто поведение.

Базовые настройки в раскадровке следующие: enter image description here

Контроллер в правом верхнем углу - HelpMenuController:

import Foundation

class HelpMenuController: UITableViewController {

   override func viewDidLoad() {
      super.viewDidLoad()
      self.splitViewController?.preferredPrimaryColumnWidthFraction = 0.3
   }
   ...
}

Для другого экрана, вызов для установки предпочитаемому параметру PrimaryColumnWidthFraction происходит также и в методе viewDidLoad соответствующего MasterViewController. Кажется, все одинаково, но для одного разделенного представления это работает, а для другого разделенного представления это не так.

Я также протестировал его с помощью настраиваемого UISplitViewController и установил предпочитаемое значение PrimaryColumnWidthFraction в методе viewDidLoad, но этоПодход не сработал.

Исчезли идеи, которые могли вызвать эту проблему - кто-нибудь также сталкивался с этой проблемой или имеет представление о ней?

Альберт Эйнштейн:

Определение безумия заключается в том, чтобы делать одно и то же снова и снова и ожидать разных результатов.

Иногда у меня складывается впечатление, что при разработке программного обеспечения все наоборот: безумие делает то же самоеи снова и ожидая тех же результатов.

Или другими словами: то же самое, но разные.

1 Ответ

1 голос
/ 30 сентября 2019

Хорошо, так что после прочтения документации о UISplitViewController я снова нашел решение:

class HelpMenuController : UITableViewController {

   override func viewDidLoad() {
      super.viewDidLoad()
      self.splitViewController?.preferredPrimaryColumnWidthFraction= 0.3
      self.splitViewController?.maximumPrimaryColumnWidth = 0.3 * UIScreen.main.bounds.width
   }
   ...
}

По еще неизвестной мне причине, максимальная ширина должна была быть увеличена до желаемого значения для этого экранаа для другого экрана это не нужно было делать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...