亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢測狀態欄中的觸摸

如何檢測狀態欄中的觸摸

iOS
縹緲止盈 2019-10-17 11:16:32
我在我的應用程序,它可以由用戶進行滾動自定義視圖。但這種觀點,不從UIScrollView的繼承?,F在,我希望用戶能夠將此視圖滾動到頂部,就像其他任何可滾動視圖所允許的一樣。我認為沒有直接的方法可以這樣做。Google提出了一個解決方案:http : //cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html在iOS 4.x上不再適用。那是不行的。我有一個創建滾動視圖并將其保留在某個地方的想法,只是為了捕獲它的通知,然后將其轉發給我的控件。這不是解決我的問題的好方法,因此我正在尋找“更清潔”的解決方案。我喜歡上述鏈接到子類UIApplication的一般方法。但是什么API可以給我可靠的信息?有什么想法,幫助等嗎?編輯:關于當前解決方案,我不喜歡的另一件事是,只要當前視圖沒有任何滾動視圖,它就只能工作。僅當周圍只有一個滾動視圖時,滾動到頂部的手勢才有效。一旦將假人添加到具有另一個滾動視圖的視圖中(有關詳細信息,請參見下面的答案),該手勢將完全禁用。尋找更好解決方案的另一個原因...
查看完整描述

3 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

將此添加到您的AppDelegate.swift將執行您想要的操作:


override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

    super.touchesBegan(touches, withEvent: event)

    let events = event!.allTouches()

    let touch = events!.first

    let location = touch!.locationInView(self.window)

    let statusBarFrame = UIApplication.sharedApplication().statusBarFrame

    if CGRectContainsPoint(statusBarFrame, location) {

        NSNotificationCenter.defaultCenter().postNotificationName("statusBarSelected", object: nil)

    }

}

現在,您可以在任何需要的地方訂閱活動:


NSNotificationCenter.defaultCenter().addObserverForName("statusBarSelected", object: nil, queue: nil) { event in


    // scroll to top of a table view

    self.tableView!.setContentOffset(CGPointZero, animated: true)

}


查看完整回答
反對 回復 2019-10-17
  • 3 回答
  • 0 關注
  • 622 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號