2

複雑なことはしていません。表のセルにフォントを設定しようとしています。ビューコントローラーが表示された後にテーブルデータをリロードするか、テーブルがスクロールされてセルが更新された場合、フォントは正常に表示されます。しかし、最初にロードするときにテーブルビューのプロパティを設定しただけでは、正しく表示されません。

コードは次のとおりです。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *cellIdentifier = @"listItem";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

    cell.textLabel.text = [pickerList objectAtIndex:indexPath.row];

    return cell;
}

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
    cell.backgroundColor = [UIColor AMFDarkBlueColor];
    cell.selectionStyle = UITableViewCellSelectionStyleGray;
    cell.textLabel.textColor = [UIColor AMFRedColor];
    cell.textLabel.font = [UIFont fontWithName:@"MuseoSlab-500" size:cell.textLabel.font.pointSize];
}

reloadData私が言ったように、私が電話すればうまくいきますviewDidAppear。それは不必要なステップのように思えるので、何か間違ったことをしていないことを確認したい.

ありがとう

編集 フォントを設定しても同じ効果が得られcellForRowAtIndexPathますwillDisplayCell

4

3 に答える 3

6

このようにしてみてください

    cell.textLabel.font = [UIFont fontWithName:@"MuseoSlab-500" size:17.0];
于 2013-02-19T20:50:24.360 に答える
1

cell.textLabel.font = ... をセルの開始直後に変更します。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    NSString *cellIdentifier = @"listItem";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];

        cell.textLabel.font = [UIFont fontWithName:@"MuseoSlab-500" size:cell.textLabel.font.pointSize];
    }
//Continue cell config
}
于 2013-02-19T20:25:36.303 に答える
0

これは私にとっては問題なく機能します。試してみてください。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
}

UIFont *myFont = [ UIFont fontWithName: @"Arial" size: 30.0 ];
cell.textLabel.font = myFont;   
[cell.textLabel setText:@"Text"];

return cell;
}
于 2013-02-19T20:49:44.923 に答える