Skip to content

Instantly share code, notes, and snippets.

@monmon
Last active December 11, 2015 23:59
Show Gist options
  • Select an option

  • Save monmon/4680879 to your computer and use it in GitHub Desktop.

Select an option

Save monmon/4680879 to your computer and use it in GitHub Desktop.

使い方

KYArcTabViewControllerを継承したcontrollerを作りinitする そのcontroller内でsetupメソッドをoverrideし、tabのbuttonの個数やbuttonに対応するviewの初期化などをする

KYArcTab

viewの作成。 menuの作成やそれぞれのviewのイベント登録をする。

buttonの位置計算 degreeはラジアン

  • _setFrameForButtonsBasedOnItemCount
    • buttonの数によって配置を決める。ここの算数問題が理解できてない
  • _moveArrowToNewPosition
    • buttonの周りに付いている円のアニメーション

KYArcTabViewController

viewController。 イベントのdelegate先。

  • swipeの動作

viewの切り替えを担当しているメソッドは

- (void)touchDownAtItemAtIndex:(NSUInteger)itemIndex
         withPreviousItemIndex:(NSUInteger)previousItemIndex

角度はbuttonが2個なら12度ごと、3個なら10度ごと、4個なら8度ごとと決まっているので、 その角度とviewが進む個数分のangleを計算して、その分だけ傾けながら「現在のviewを削除」「新しいviewを追加」のアニメーションを行う

こののとき220行めで

  [viewController.view setTag:kKYNArcTabSelectedViewControllerTag];

と新しいviewにtagをセットすることで、後で

  UIView * currentView = [self.view viewWithTag:kKYNArcTabSelectedViewControllerTag];

とviewWithTag:を使って、削除するためのviewをsearchしてる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment