Как я могу положить ярлык в ячейку таблицы? - PullRequest
0 голосов
/ 22 июля 2011

ячейка таблицы http://img543.imageshack.us/img543/4315/28749523.png

это ячейка, которую я хочу сделать, чтобы левая сторона была cell.text, а правая часть - меткой.Теперь стиль таблицы:

UITableViewStyleGrouped. Когда я пытаюсь сделать метку, я пишу эти коды.

cell.textLabel.text = @"All";
UIView* view = cell.contentView;
UILabel* label1 = [[UILabel alloc] initWithFrame:cell.frame];
label1.textColor = [UIColor blackColor];
label1.textAlignment = UITextAlignmentCenter;
label1.text = @"%15";
[view addSubview:label1];
[label1 release];

Но это не работает, потому что ячейка метки покрывает одну и другую.помогите мне сделать такой взгляд с кодом, конечно.

Ответы [ 3 ]

3 голосов
/ 22 июля 2011

Кажется, проблема в вашем коде - фрейм label1. Измените его кадр следующим образом.

CGRect lFrame = CGRectMake(cell.frame.width - 100, 0, 100, cell.frame.height);
UILabel* label1 = [[UILabel alloc] initWithFrame:lFrame];

Использование существующего стиля: Используемый стиль уже предопределен. Нет необходимости добавлять свой собственный ярлык в ячейку. Вы можете достичь этого стиля, указав стиль ячейки таблицы в UITableViewCellStyleValue1 .

[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 ....

Вы можете изменить свойства шрифта, такие как стиль, цвет и размер ячейки textLabel и подробныйТекстLabel в соответствии со своими потребностями.

2 голосов
/ 22 июля 2011

Предопределенные стили хороши, если они соответствуют вашим потребностям.

В противном случае подобный подход будет работать в тех случаях, когда вам нужно больше власти над макетом или больше представлений в ячейке:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [self makeCell: CellIdentifier];
    }

    MyData *data =  [self.data objectAtIndex:indexPath.row];

    UILabel *lbl1 = (UILabel *)[cell viewWithTag:1];
    UILabel *lbl2 = (UILabel *)[cell viewWithTag:2];

    lbl1.text = data.text;
    lbl2.text = data.auxText;    

    return cell;
}


- (UITableViewCell *)makeLensListCell: (NSString *)identifier
{
    CGRect lbl1Frame = CGRectMake(10, 0, 140, 25);
    CGRect lbl2Frame = CGRectMake(10, 150, 140, 25);

    UILabel *lbl;

    UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:identifier] autorelease];

    // Label with tag 1.
    lbl = [[UILabel alloc] initWithFrame:lbl1Frame];
    lbl.tag = 1;
    [cell.contentView addSubview:lbl];
    [lbl release];

    // Label with tag 2.
    lbl = [[UILabel alloc] initWithFrame:lbl2Frame];
    lbl.tag = 2;
    lbl.textColor = [UIColor lightGrayColor];
    [cell.contentView addSubview:lbl];
    [lbl release];

    // Add as many labels and other views as you like

    return cell;
}
1 голос
/ 22 июля 2011

Просто установите тип UITableviewCell в UITableViewCellStyleValue1 и сделайте, как показано ниже.

cell.textLabel.text = @"All";
cell.detailTextLabel.text = @"%15";

Вам вообще не нужно добавлять вид в ячейку.Кроме того, вы можете изменять свойства textLable и DetailTextLabel по своему усмотрению при изменении с помощью UILabel.Они сами UILabel.Таким образом, вы можете делать все, что можете, с UILabel.

Надеюсь, что эта помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...