Ios MPC处理程序-如何停止旋转活动监视器?
我有一个多人游戏,它只是通过MPC处理器连接。“连接”窗口显示附近的人员和连接的玩家。其中有一个旋转的活动图标,它会继续旋转搜索,即使对等方已成功连接。它不是按钮或活动指示器视图。它只是处理程序的一部分,所以我不知道在玩家连接后如何停止它。有什么想法吗?谢谢截图Ios MPC处理程序-如何停止旋转活动监视器?,ios,uiactivityindicatorview,Ios,Uiactivityindicatorview,我有一个多人游戏,它只是通过MPC处理器连接。“连接”窗口显示附近的人员和连接的玩家。其中有一个旋转的活动图标,它会继续旋转搜索,即使对等方已成功连接。它不是按钮或活动指示器视图。它只是处理程序的一部分,所以我不知道在玩家连接后如何停止它。有什么想法吗?谢谢截图 }看来你不能。该连接浏览器GUI是由MPC框架提供的,API中没有对其进行压制的调用 但是,如果你的应用程序在一个会话中只允许两个对等方,当你获得连接的另一个对等方的didChangeState时,你可以通过编程方式隐藏浏览器(而不是等
}看来你不能。该连接浏览器GUI是由MPC框架提供的,API中没有对其进行压制的调用 但是,如果你的应用程序在一个会话中只允许两个对等方,当你获得连接的另一个对等方的didChangeState时,你可以通过编程方式隐藏浏览器(而不是等待用户单击“取消”或“完成”),并且你应该停止广告客户(因为在两个对等方连接后,你不支持更多连接) 我想,“旋转轮子”的意思是“寻找更多的同行进入范围”,而不是“用户不能点击任何按钮”。我同意你的看法,这有点奇怪。该框架允许您实现自己的连接浏览器
import UIKit
import MultipeerConnectivity
class MPCHandler: NSObject, MCSessionDelegate {
var peerID:MCPeerID!
var session:MCSession!
var browser:MCBrowserViewController!
var advertiser:MCAdvertiserAssistant? = nil
func setupPeerWithDisplayName (displayName:String){
peerID = MCPeerID(displayName: displayName)
}
func setupSession(){
session = MCSession(peer: peerID)
session.delegate = self
}
func setupBrowser(){
browser = MCBrowserViewController(serviceType: "my-game", session: session)
}
func advertiseSelf(advertise:Bool){
if advertise{
advertiser = MCAdvertiserAssistant(serviceType: "my-game", discoveryInfo: nil, session: session)
advertiser!.start()
}else{
advertiser?.stop()
advertiser = nil
}
}
func session(session: MCSession!, peer peerID: MCPeerID!, didChangeState state: MCSessionState) {
let userInfo = ["peerID":peerID, "state":state.rawValue]
dispatch_async(dispatch_get_main_queue(), { () -> Void in
NSNotificationCenter.defaultCenter().postNotificationName("MPC_DidChangeStateNotification", object: nil, userInfo: userInfo)
})
}
func session(session: MCSession!, didReceiveData data: NSData!, fromPeer peerID: MCPeerID!) {
let userInfo = ["data":data, "peerID":peerID]
dispatch_async(dispatch_get_main_queue(), { () -> Void in
NSNotificationCenter.defaultCenter().postNotificationName("MPC_DidReceiveDataNotification", object: nil, userInfo: userInfo)
})
}
func session(session: MCSession!, didFinishReceivingResourceWithName resourceName: String!, fromPeer peerID: MCPeerID!, atURL localURL: NSURL!, withError error: NSError!) {
}
func session(session: MCSession!, didStartReceivingResourceWithName resourceName: String!, fromPeer peerID: MCPeerID!, withProgress progress: NSProgress!) {
}
func session(session: MCSession!, didReceiveStream stream: NSInputStream!, withName streamName: String!, fromPeer peerID: MCPeerID!) {
}