-2

通知センター (iOS 7) では、セグメント化されたコントロール (私が推測するもの) の「今日」、「すべて」、および「見逃した」オプションの間でスワイプすることができます。コードでこれを実行したいのですが、続行する方法がわかりません。私は自分のビューとして、uisegmented コントロールと uitableview を持っています。

4

3 に答える 3

1

それぞれの手順に従ってこれを達成しました。

  1. 2 つのスワイプ ジェスチャ認識機能を追加します (1 つは左にスワイプし、もう 1 つは右にスワイプします)。
  2. 接続インスペクタのそれぞれについて、コンセント コレクションをメイン ビューとして参照します。
  3. スワイプ時のアクションの選択は次のとおりです。
  4. viewSelector は UISegmentedControl であり、firstView、secondView、および thirdView は、表示するビューを選択するために使用される 3 つのビューです。

コード:

@IBAction func indexChanged(sender: UISegmentedControl) {
    switch sender.selectedSegmentIndex
    {
    case 0:
        firstView.hidden = false
        secondView.hidden = true
        thirdView.hidden = true
    case 1:
        firstView.hidden = true
        secondView.hidden = false
        thirdView.hidden = true
    case 2:
        firstView.hidden = true
        secondView.hidden = true
        thirdView.hidden = false
    default:
        break;
    }
}

@IBAction func swipeLeft(sender: UISwipeGestureRecognizer) {
    viewSelector.selectedSegmentIndex = (viewSelector.selectedSegmentIndex + 1) % viewSelector.numberOfSegments
    indexChanged(viewSelector)
}

@IBAction func swipeRight(sender: UISwipeGestureRecognizer) {
    viewSelector.selectedSegmentIndex = (viewSelector.selectedSegmentIndex - 1) % viewSelector.numberOfSegments
    if(viewSelector.selectedSegmentIndex == -1){
        viewSelector.selectedSegmentIndex = viewSelector.numberOfSegments-1
    }
    println(viewSelector.selectedSegmentIndex)
    indexChanged(viewSelector)
}
于 2015-02-25T22:37:35.487 に答える
0

これは、ページングを有効にした UIScrollView を使用して実現できます。ユーザーがページをスクロールすると、UISegmentedControl の selectedSegmentIndex が更新されます。

于 2013-10-08T17:53:35.483 に答える
-1

ページングが有効になっている scrollView ではないようです。UIGestureRecognizer を使用すると簡単になると思います。ジェスチャを認識した場合は、現在のタブのビューをスライドさせ、セグメント化されたコントロールを更新します。

于 2013-10-08T19:04:28.563 に答える