禁用 iMessage 应用调整大小
Disable iMessage App Resizing
我正在为 iPhone 开发 iMessage 应用程序。它目前允许用户按箭头将应用程序从键盘大小调整为全屏。对于我的应用程序,全屏视图不是必需的。
是否可以在 iMessage 应用程序中禁用调整大小?
谢谢
恐怕这个箭头永远叫全屏布局。你必须同时处理这两个问题。
但这里有一些想法:
- 当用户点击箭头时,它会触发该方法
didTransition(to: MSMessagesAppPresentationStyle)
。所以你可以 requestPresentationStyle(_ presentationStyle: MSMessagesAppPresentationStyle)
使用紧凑模式。这样当它尝试全屏时,它会回到紧凑模式
- 我也不确定,但您可以使用
requestPresentationStyle(_ presentationStyle: MSMessagesAppPresentationStyle)
始终显示紧凑模式,而不是扩展模式。
他们是这样说的:
Note, however, that the user should have ultimate control over the
extension’s presentation style. If the user chooses to change the
presentation style, you should respect that choice.
除了以上 :- 当此人回复消息时,还有 2 种情况
活动和非活动状态:-
活跃状态的生命周期 :
iMessage Tap
func willTransition(to presentationStyle: MSMessagesAppPresentationStyle)
func didSelect(_ message: MSMessage, conversation: MSConversation)
func didTransition(to presentationStyle: MSMessagesAppPresentationStyle)
InActive 状态的生命周期 :
iMessage Tap
didBecomeActive(with conversation: MSConversation)
func viewWillAppear(_ animated: Bool)
func viewDidAppear(_ animated: Bool)
所以在非活动状态 willTransition 将控制它。
但在活动状态下,您无法控制转换,因此默认情况下它将以展开形式打开。在 didBecomeActive 方法中,您必须调用以下函数才能转换为不同的样式。
这些函数将有助于在 MessagesViewController 中从一种过渡状态移动到另一种状态:-
requestPresentationStyle(.expanded)
requestPresentationStyle(.compact)
以上方法将调用 willTransition 和 didTransition:-
override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
//Here we can check the presentationStyle and move the Controller according to need . i.e
let controller: UIViewController
if presentationStyle == .compact {
controller = instantiateCompactController()
}
else {
controller = instantiateExpandController()
}
//and then Present Controller
}
我正在为 iPhone 开发 iMessage 应用程序。它目前允许用户按箭头将应用程序从键盘大小调整为全屏。对于我的应用程序,全屏视图不是必需的。
是否可以在 iMessage 应用程序中禁用调整大小?
谢谢
恐怕这个箭头永远叫全屏布局。你必须同时处理这两个问题。 但这里有一些想法:
- 当用户点击箭头时,它会触发该方法
didTransition(to: MSMessagesAppPresentationStyle)
。所以你可以requestPresentationStyle(_ presentationStyle: MSMessagesAppPresentationStyle)
使用紧凑模式。这样当它尝试全屏时,它会回到紧凑模式 - 我也不确定,但您可以使用
requestPresentationStyle(_ presentationStyle: MSMessagesAppPresentationStyle)
始终显示紧凑模式,而不是扩展模式。
他们是这样说的:
Note, however, that the user should have ultimate control over the extension’s presentation style. If the user chooses to change the presentation style, you should respect that choice.
除了以上 :- 当此人回复消息时,还有 2 种情况
活动和非活动状态:-
活跃状态的生命周期 :
iMessage Tap
func willTransition(to presentationStyle: MSMessagesAppPresentationStyle)
func didSelect(_ message: MSMessage, conversation: MSConversation)
func didTransition(to presentationStyle: MSMessagesAppPresentationStyle)
InActive 状态的生命周期 :
iMessage Tap
didBecomeActive(with conversation: MSConversation) func viewWillAppear(_ animated: Bool)
func viewDidAppear(_ animated: Bool)
所以在非活动状态 willTransition 将控制它。
但在活动状态下,您无法控制转换,因此默认情况下它将以展开形式打开。在 didBecomeActive 方法中,您必须调用以下函数才能转换为不同的样式。
这些函数将有助于在 MessagesViewController 中从一种过渡状态移动到另一种状态:-
requestPresentationStyle(.expanded)
requestPresentationStyle(.compact)
以上方法将调用 willTransition 和 didTransition:-
override func willTransition(to presentationStyle: MSMessagesAppPresentationStyle) {
//Here we can check the presentationStyle and move the Controller according to need . i.e
let controller: UIViewController
if presentationStyle == .compact {
controller = instantiateCompactController()
}
else {
controller = instantiateExpandController()
}
//and then Present Controller
}