У меня странная проблема.У меня есть пользовательский UIView, который должен заполнить экран.Вот изображение графического интерфейса пользователя вместе с ограничениями:
Теперь главная проблема на симуляторе iPad Pro 12.9 "сначалаПользовательский вид заполняет только часть экрана, как если бы он следовал ограничениям размера Air 2. Однако, если я отойду от экрана и вернусь к нему так, что экран не воссоздается, а просто перерисовывается, графический интерфейс выглядит почтиС другой стороны, графический интерфейс выглядит практически идеально на имеющемся у меня устройстве iPad Mini без необходимости возвращаться и возвращаться. Это не совсем так, потому что изображение в средней части слегка обрезается сверху и снизу, но я не пытался выяснить, почему это происходит. Я потратил немало времени, пытаясь отладить проблему, о которой я спрашиваю. Если вам нужна дополнительная информация, чтобы помочь мне решить эту проблему, я счастливчтобы обеспечить это - просто укажите, что вам нужно. На контроллерах представления, которые фактически содержат это настраиваемое представление, я использую маски автоматического изменения размераl Экран, который, очевидно, не работает, но ограничения были опробованы, и они тоже не помогли.
Есть идеи, как это исправить?
ОБНОВЛЕНИЕ: Я изменил ограниченияк чему-то, что мне понравилось больше, так как я использовал «Сбросить на предложенные ограничения», и это создало некоторые странные ограничения.Проблема все еще существует, однако.
Вот часть кода, включающего представление:
class SessionDisplayViewController: SessionViewDisplayViewControllerBase
{
//some code omitted for succinctness
@IBOutlet weak var mySessionView: SessionDisplayView!
override func getSessionView() -> SessionDisplayView
{
return mySessionView
}
...
}
class SessionViewDisplayViewControllerBase: UIViewController, SessionDisplayViewDelegate{
...
override func viewDidLoad() {
super.viewDidLoad()
...
if !ShareData.sharedInstance.sessionDataObjectContainer.keys.contains(curSessName) || ShareData.sharedInstance.sessionDataObjectContainer[curSessName] == nil
{
setupMySession(isLive: false, isFinalized: false)
}
else if (ShareData.sharedInstance.sessionDataObjectContainer[curSessName]?.isFinalized)!
{
setupMySession(isLive: false, isFinalized: true)
}
else
{
setupMySession(isLive: true, isFinalized: false)
var fromTempChoose = ShareData.sharedInstance.startingSessionFromTempChoose && !(ShareData.sharedInstance.globalsVar?.hasStartedSession)!
if fromTempChoose || (ShareData.sharedInstance.resumingSessionFromSessDet && !(ShareData.sharedInstance.globalsVar?.hasResumedSession)!)
{
let mySessionView = getSessionView()
mySessionView.curScene.pauseSession(isStartingNow: true)
blurEffect = UIBlurEffect(style: UIBlurEffectStyle.light)
//}
blurEffectView = UIVisualEffectView(effect: blurEffect)
//always fill the view
blurEffectView?.frame = self.view.bounds
blurEffectView?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
self.view.addSubview(blurEffectView!)
}
...
}
var mySessObj = getSessionView() //these three lines of code were added to try to fix the problem. They weren't in the original code
mySessObj.frame = self.view.bounds
setNeedsDisplay()
}
...
func setupMySession(isLive: Bool, isFinalized: Bool)
{
let mySessionView = getSessionView()
//mySessionView.translatesAutoresizingMaskIntoConstraints = false
mySessionView.delegate = self
sessionNameIndex = self.getSessionNumber() - 1
let myName = ShareData.sharedInstance.currentAccount.name
var curSessName = generateCurrentAccountName(name: myName!, value: self.getSessionNumber())
//var names = generateAllPossibleSessionNames(name: myName!)
let curSession = ShareData.sharedInstance.sessionDataObjectContainer[curSessName]
mySessionView.onView(index: getSessionNumber(), sessionName: curSessName, isLive: isLive, isFinalized: isFinalized)
if isLive
{
let val = curSession?.currentValue()
mySessionView.curScene.setStartPosition(newValue: val!)
}
}