- UINavigationControllerを使用する場合は、pushViewController:animatedを使用します
----前のビューに戻る[[self NavigationController] popViewControllerAnimated:YES];
—ps:プッシュすると、将来、ナビゲーションの左側のバーに戻るボタンが自動的に追加され、その応答メソッドは戻ります。したがって、通常、returnメソッドを作成する必要はなく、戻るボタンをクリックするだけです。 - また、presentModalViewController:animated
[self presentModalViewController:controlleranimated:YES]; // YESにはアニメーション効果があります
-----前のビューに戻ります[selfdismissModalViewControllerAnimated:YES]; - C ++と比較すると、initはデフォルトの構造に似ており、initWith ...は実際のパラメーターを提供する構造に似ています。
- 模擬インターフェースを作成する上での主な問題は、
1。値の受け渡し
2.カスタムセル
3.ナビゲーションの作成とナビゲーションバーの作成だと思います。 - UIButtonのいくつかの状態
UIControlStateNormal = 0、通常の状態が表示されます
UIControlStateHighlighted = 1 << 0、強調表示された状態が表示されます
UIControlStateDisabled = 1 << 1、無効状態のみが表示されます
UIControlStateSelected = 1 << 2、選択された状態
UIControlStateApplication = 0x00FF0000、アプリケーションがマークされている場合
UIControlStateReserved = 0xFF000000は内部フレームワーク用に予約されているため、無視してかまいません。
- 折りたたまれたセルを作成する方法:
- 通常どおりテーブルビューを作成する
- viewForHeaderInSectionでUIControlコントロールを作成します(UIControlコントロールの概要:https://blog.csdn.net/iteye_9214/article/details/82283002?utm_medium = distribute.pc_relevant.none-task-blog-searchFromBaidu-2.channel_param&depth_1-utm_source = distribute.pc_relevant.none-task-blog-searchFromBaidu-2.channel_param)
- UIControlのタグを使用して現在のグループを記録し、クリックイベントUIControlEventTouchUpInsideを設定すると、クリックイベントがパラメーターUIControlを渡します。
- ブール変数の配列を作成するには、テーブルビューでnumberOfRowsInSectionを作成するときに選択します。ブール変数がyesの場合、各グループの行は0です。それ以外の場合は、通常どおりに作成されます。クリックイベントの後半で、渡されたばかりのパラメーターのタグ値を使用して、それがどのグループであるかを判別し、次に必要なブール配列の反対(つまり、感嘆符が追加されます)
- ロゴも変更した後は、最後のステップだけが残っています。クリックすると、リストを更新する必要があります。
NSIndexSet * index = [NSIndexSet indexSetWithIndex:i];
[_tableview reloadSections:index withRowAnimation:UITableViewRowAnimationAutomatic];
キーコード:
//开始创建
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if(flag[section] == YES){
return 0;
}
return 8;
}
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 50;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIControl *view = [[UIControl alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 80)];
view.tag = section;
view.backgroundColor = [UIColor grayColor];
[view addTarget:self action:@selector(press:) forControlEvents:UIControlEventTouchUpInside];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 70, 30)];
label.textColor = [UIColor blackColor];
label.font = [UIFont systemFontOfSize:15];
label.text = [NSString stringWithFormat:@"第%ld组",section];
[view addSubview:label];
return view;
}
-(void)press:(UIControl *)view{
NSInteger i = view.tag;
//取反
flag[i] = !flag[i];
//刷新列表
NSIndexSet * index = [NSIndexSet indexSetWithIndex:i];
[_tableview reloadSections:index withRowAnimation:UITableViewRowAnimationAutomatic];
}
@end
UINavigationController与UITabBarController
- UINavigationControllerはUIViewControllerを継承し、スタックベースのコンテナコントローラーです。コンテナであるため、何かを保持できます。たとえば、UIViewはさまざまなコンポーネント(UILabel、UIButtonなど)を保持でき、UINavigationControllerはビューコントローラです。
UINavigationControllerには、いくつかの部分が含まれています。
ナビゲーションスタックナビゲーションスタック。ビューコントローラをスタックの形式で管理します。スタックの1つのビューコントローラー(スタックの最下部)はルートビューコントローラーと呼ばれ、他のビューコントローラーは子ビューコントローラーと呼ばれます。スタック内のコントローラーは、self.navigationControllerを介してUINavigationControllerのインスタンスを見つけることができます。
UINavigationBarナビゲーションバー。スタック内のビューコントロールは、デフォルトで上部にナビゲーションバーを追加します。ナビゲーションバーは子ビューコントローラーのインターフェイスに表示されますが、UINavigationControllerインスタンスによって管理されます。ただし、ナビゲーションバーのコンテンツは子ビューによって制御されます。コントローラが決定します(self.navigationItemによって設定されます)。
UIToolbarツールバーのUINavigationControllerは、サブビューの下部にツールバーを提供します。これはデフォルトでは表示されず、ほとんど使用されません。
- 1.
UITabBarの下のツールバーはUITabBarと呼ばれます。UITabBarControllerにN個のサブコントローラーがある場合、UITabBarにはそれに対応するサブコントロールとしてN個のUITabBarButtonがあります。
注:UITabBarButtonはUITabBar内で偶数の位置にあり、UITabBarの高さは49です。
- UITabBarButton
UITabBarButtonに表示されるコンテンツは、対応するサブコントローラーのtabBarItemプロパティによって決まります。
最も単純な例の1つを取り上げます。これは、ログインを確認した後の通常のインターフェイスです。
最初に各ページを作成し、次にUINavigationController(ナビゲーションコントローラー)を介してビューコントローラーを制御します
作成時に最初に5つのナビゲーションコントローラーを作成し、提供された実際のパラメーターを使用して、それぞれが新しいルートビューになるようにページに対応するものを作成し、次にこれらの5つのナビゲーションコントローラーを新しい配列で保存して新しいものを作成する方法特定のページ切り替え操作を実行するためのタブバー。新しく作成されたtabbar.viewcontrollerに配列を割り当て、最後にself.view.window.rootviewcontroller =作成されたばかりのタブバー
(ターバーとナビゲーションコントローラーは互いに補完し合う)を介してビューに表示します。