-2

解析してページに表示する必要があるJSON文字列を生成しています。私のJSON文字列は、次のようなCDの内容に関する情報を出力します。

[{"song_name":"Song 1","artist":"John","price":"$1"}, 
{"song_name":"Song 2","artist":"Anna","price":"$2"}, 
{"song_name":"Song 3","artist":"Ryan","price":"$3"}]

viewControllerのコンテンツを、song_name、artist、およびpriceを表示するリスト形式で表示したいと思います。tableViewを使用してこの情報を表示したくはありませんが、リストを表示したいだけです。どうすればこれを行うことができますか?NSJSONSerializationを使用する必要があると思いますが、これまではtableViewにのみ使用していました。ありがとうございました!

4

3 に答える 3

1

次の手順を実行します:

  1. JSONを解析し、キーと値のペア(CDのNSDictionary)をNSArray(たとえばinfoArray)に格納します
  2. viewControllerのビューにサブビューとしてUIScrollviewを追加します。
  3. infoArrayの数に応じて、UILabelを動的に割り当てます。データを見ると、静的フレームでラベルを初期化できると思います。つまり、yは静的なままです。
  4. このラベルのinfoArrayからテキストを追加します。

それでも、UITableViewのみを使用することをお勧めします。それははるかに簡単でより良いアプローチです

于 2012-12-20T08:34:10.523 に答える
1

他の回答に加えて、使用できるラベルは1つだけで、トラック情報の間に@ "\ n"を付けてNSMutableString(トラック情報を動的に追加するため)を作成し、label.textに渡して、UILabelのプロパティnumberOfLinesを0に設定します。

于 2012-12-20T08:46:59.830 に答える
0

実際にNSJSONSerializationを使用して辞書の配列を作成し、次にこの配列を1つずつ解析して、すべての辞書のビューを作成します。このための方法を使用するのがおそらく最善です:

-(UIView *) listView: (NSString *)songName andArtist:(NSString *)artist andPrice:(NSString *)price andIndex:(int)viewIndex {
    //create your view here and do anything you want

    UIView *subView = [[UIView alloc] init] autoRelease];
    subView.frame = CGRectMake(0, viewIndex * 70, self.view.frame.width, 70);

    //add labels and other stuff


   // return the view
   return subView;
}

前者のメソッドのviewIndexを使用して、異なるY値を互いに下に表示するように設定して、現在のビューに追加します。したがって、配列がある場合は、次のようになります。

for (int i = 0; i < [array count]; i++) {

    NSDictionary *dict = [array objectAtIndex:i];
    NSString *songName = [dict valueForKey:@"song_name"];
    NSString *artist = [dict valueForKey:@"artist"];
    NSString *price = [dict valueForKey:@"price"];

    UIView *tempView = [self listView:songName andArtist:artist andPrice:price andIndex:i];

    [self.view addSubView:tempView];

}

すべてをスクロールビューに追加する必要があります。そうしないと、ページの多くの行に問題が発生します。方法がわからない場合は、GoogleforUIScrollView。

しかし、私はこのアプローチに反対することをお勧めします。テーブルビューには理由があります。彼らはこのようなもののために作られています。スクロール、描画、更新もできるからです。できれば使ってください!

于 2012-12-20T08:33:20.857 に答える