2012-02-03 11 views
1

UITableView最初の行にロゴが表示され、他の行には他の表のデータが表示されます。 私は、次のコードを試してみました:UITableViewの最初の行が異なる

if(indexPath.row == 0) { 
    //Code for imageview 
} else { 
    //Code to display array content 
} 

私の問題は、私はテーブルビューに最初の配列項目を取得しないということです。編集::

if (indexPath.row == 0) { 

     CGRect myImageRect = CGRectMake(120.0f, 5.0f, 70.0f, 55.0f); 
     UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
     [myImage setImage:[UIImage imageNamed:@"logo.png"]]; 
     [cell.contentView addSubview:myImage]; 
    } 
    else { 

     NSDictionary *dict = [menuitems objectAtIndex:indexPath.row]; 

     cell.textLabel.text =[dict objectForKey:@"category"]; 
     } 
+0

if(indexPath.row == 0)が正しい場合、-----コードをimageview ----に投稿できますか? –

答えて

8

ヘッダービューを使用してください。行の先頭にロゴを配置するには、次のコードを使用します。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ 

    UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; 
    UIImageView *myimgvw = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)]; 
    [myimgvw setImage:[UIImage imageNamed:@"logo.png"]]; 
    [myView addSubview:myimgvw]; 

    return myView; 
} 
+0

答えをありがとう。私はこれを追加すると、ヘッダー画像は、uitableviewの最初の行をオーバーレイします。私はそれを克服することができますか? – nithin

+0

xtoファイルにジャンプ - >テーブル - >テーブルビューのサイズを確認 - >ヘッダーフィールドの値を「50」にするか、必要なものを選択します。 – Rupesh

0

は、その後、あなたは上記のコードの他の部分の代わりにindexPathのテキストを表示するために使用しindexPath-1を配置する必要があります。

1

あなたは、配列の内容を表示するコードを示していないが、私はあなたが

[dataArray objectAtIndex:indexPath.row]; 

のようなものを使用しているしかし、あなたは、行0で画像を表示しているので、あなたがすることによってこれを相殺する必要があると思います - 1。つまり、テーブルの2行目にindexPath.row = 1が設定されますが、objectAtIndex:0にする必要があります。

+0

あなたの考えに従えば、配列の最後の要素はありません。 – androniennn

+0

@androniennnなぜそうなるのか分かりません。あなたが配列のサイズ+ 1のセルの数を返す限り、問題はありません。 –

+0

正確には、 'numberofrows'デリゲートでは、arrayize + 1を返してから、最後の要素を常に返します。それは私のせいだった。 'if(indexPath.row == 0)'をチェックしてからcustomCell1を返し、それ以外の場合は 'indexPath.row-1' customCell2を返します。最後の要素はないでしょう。 – androniennn

関連する問題