iOSでのtableview 2級のセルの展開と回収の例示的なコード
1787 ワード
文章の内容の制限のため、私達は引き続き上記の内容で展開します。上記の案にはまだ問題があります。もし複数のアクションを展開し、展開するアクションがスクリーンの上にないならば、私達がスライドした時に再びスクリーンに戻った時、展開のアイコンは下の図のようになります。
具体的に分析してみます。まず多重化の問題を考えて、セレクションが表示される時、多重化池の中からIDのようなセレクションを見つけました。その後、セレクションを見つけて、直接使って、ここで表示された内容を修正しただけです。セレクションの中のアイコンは展開状態ですか?それとも展開状態ですか?はい、ここに来て問題の所在を分析します。じゃ、私達はプログラムを修正しているべきですか?セレクションが表示されるときは、セレクションが展開されているアイコンの状態を判断して、正しい画像に設定します。私たちはGetView ForHeaderに下記のコードを追加します。
ここはどういう理由ですか?私達はよく考えてみます。多重池からセレクションを取った時、元のボタンは90度回転しました。そして直接に対応する写真を変えました。そしてクリックして回収します。ボタンはこの写真を持ってまた回転し始めますので、エラーが発生します。じゃ、私達は写真を回転させる時に、画像の対応を修正します。コードは以下の通りです。
具体的に分析してみます。まず多重化の問題を考えて、セレクションが表示される時、多重化池の中からIDのようなセレクションを見つけました。その後、セレクションを見つけて、直接使って、ここで表示された内容を修正しただけです。セレクションの中のアイコンは展開状態ですか?それとも展開状態ですか?はい、ここに来て問題の所在を分析します。じゃ、私達はプログラムを修正しているべきですか?セレクションが表示されるときは、セレクションが展開されているアイコンの状態を判断して、正しい画像に設定します。私たちはGetView ForHeaderに下記のコードを追加します。
// ,
f (Title [(int)section].ExplandFlag) {
headerView.ExplandButton.SetImage (UIImage.FromBundle ("arrowD"), UIControlState.Normal);
else {
headerView.ExplandButton.SetImage (UIImage.FromBundle ("arrow"), UIControlState.Normal);
プログラムにはまだいくつかの穴があります。いくつかのアクションが回収されると、アイコンが足りなくなります。下図のように:ここはどういう理由ですか?私達はよく考えてみます。多重池からセレクションを取った時、元のボタンは90度回転しました。そして直接に対応する写真を変えました。そしてクリックして回収します。ボタンはこの写真を持ってまた回転し始めますので、エラーが発生します。じゃ、私達は写真を回転させる時に、画像の対応を修正します。コードは以下の通りです。
//
Title[(int)section].ExplandFlag=false;
//
UIButton explandButton=(UIButton)sender;
explandButton.SetImage (UIImage.FromBundle ("arrow"), UIControlState.Normal);
myTabViSource.ReturnRotate(explandButton);
//
int length=Title[(int)section].SecondTitle.Count;
NSIndexPath[] arrayIndexPath=new NSIndexPath[length];
for(int i=0;i<length;i++)
{
arrayIndexPath[i]=NSIndexPath.FromRowSection((nint)i,section);
}
tableview.DeleteRows(arrayIndexPath,UITableViewRowAnimation.Automatic);
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。