即使屏幕方向为横向,有没有办法以其纵向显示首页指示器?
答案 0 :(得分:2)
正如@ the4kman所指出的,实现此目的的唯一方法是使用视图转换:
view.transform = CGAffineTransform(rotationAngle: .pi / 2)
但是,应该转换的视图也应该是内部视图。您需要将其 height设置为Superview宽度,将 width设置为Superview高度。并且应该垂直和水平居中。
您可以在您的应用中支持所有方向,并且仅将其禁用 该特定的控制器。
视图控制器实现:
import UIKit
class PortraitController: UIViewController {
@IBOutlet weak var viewLandscaped: UIView!
override func viewDidLoad() {
super.viewDidLoad()
viewLandscaped.transform = CGAffineTransform(rotationAngle: .pi / 2)
}
override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
return .portrait
}
}
答案 1 :(得分:1)
您无法修改原点指示器的位置。 UX也很糟糕,因为用户希望它位于底部。
一种解决方法是使用CGAffineTransform
旋转所有UI元素的超级视图。为此,you should only allow the portrait orientation in your app(或in a particular view controller)可以使用户界面始终显示为横向。
view.transform = CGAffineTransform(rotationAngle: .pi / 2)
...或左侧风景:
view.transform = CGAffineTransform(rotationAngle: .pi / -2)
此外,请记住,旋转的超级视图应翻转其视图和高度,以使其充满整个屏幕。例如,您应该将其尺寸从320x568调整为568x320。