Как написать два или более текста в строке таблицы и расположить их по-разному? - PullRequest
0 голосов
/ 20 января 2012

У меня есть UITableView, и я хочу направить текст в ряд, который должен быть выровнен по правому краю, и другой текст, который должен быть выровнен по левому краю.И оба этих текста должны начинаться с некоторого пробела от границы строки.Я не хочу, чтобы они начинались с границы ряда.Как я могу это сделать?

enter image description here

Я хочу написать текст в каждой строке с выравниванием по левому краю, а также с текстом с выравниванием по правому краю.

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 20 января 2012

В вашем методе cellForRowAtIndexPath просто создайте ячейку с 2 метками UILabels и укажите для них нужное местоположение.Небольшой пример:

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier];
}    
  UILabel *label1 = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 50, 20)];
  UILabel *label2 = [[UILabel alloc]initWithFrame:CGRectMake(80, 10, 50, 20)];
  label1.textAlignment = UITextAlignmentLeft;
  label2.textAlignment = UITextAlignmentRight;
  //other labels customization and add them to your cell
  return cell;
}

сделал это без SDK поблизости, поэтому могут быть некоторые ошибки.

Надеюсь, это поможет

1 голос
/ 20 января 2012

то, что вы могли бы сделать, это создать подкласс метки и переписать его функцию drawtextinrect следующим образом:

@interface UILabelCustom : UILabel 

- (void)drawTextInRect:(CGRect)rect;
@end


@implementation UILabelCustom

-(void)drawTextInRect:(CGRect)rect{
    UIEdgeInsets insets = {5, 5, 5, 5};
    return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, insets)];
}

@end

это позволит вам создать поле по краям метки, также вы можете создать пользовательский интерфейс, содержащий2 из этих пользовательских меток и слева и справа выровняйте их соответственно.используя uvview в качестве контейнера для двух меток, чтобы расположить их по мере необходимости.Я считаю, что это может создать эффект, который вы ищете

редактировать: только что видел, что ваше редактирование было для ячейки таблицы.вам нужно создать пользовательскую ячейку, а также пользовательский uilabel

@interface CustomCell : UITableViewCell {

}


@property (retain, nonatomic) UILabelCustom *label1,*label2;


@end

@implementation CustomCell

@synthesize label1, label2;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        // Initialization code
    }
    return self;
}

- (void)dealloc
{

    [label1 release];
    [label2 release];


    [super dealloc];
}

@end
1 голос
/ 20 января 2012

UILabel очень ограничен с точки зрения стиля и макета.Учитывая использование нескольких макетов или CoreText.

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