Я только начал играть с ComponentKit, и у меня возникли трудности с выравниванием двух меток по горизонтали. Я хочу, чтобы первая была близка к левому краю, а вторая - справа.Как использовать CKStackLayoutComponent для выравнивания двух меток по горизонтали?
С Автокомпоновкой, я могу сделать это с этим набором ограничений:
H:|-0-[_label1]-[_label2]-0-|
Все, что я пытался, кажется, не работает, я всегда получаю один и тот же результат: обе метки выровнена по левому краю ,
Это супер-простой компонент:
+ (instancetype)newWithText1:(NSString *)text1 text2:(NSString *)text2
{
return [super
newWithComponent:
[CKStackLayoutComponent
newWithView:{}
size:{}
style:{
.direction = CKStackLayoutDirectionHorizontal,
.alignItems = CKStackLayoutAlignItemsCenter
}
children:{
{
[CKLabelComponent
newWithLabelAttributes:{
.string = text1,
.font = [UIFont systemFontOfSize:20],
.color = [UIColor blackColor]
}
viewAttributes:{
{@selector(setBackgroundColor:), [UIColor clearColor]}
}],
.alignSelf = CKStackLayoutAlignSelfStretch
},
{
[CKLabelComponent
newWithLabelAttributes:{
.string = text2,
.font = [UIFont systemFontOfSize:20],
.color = [UIColor redColor],
.alignment = NSTextAlignmentRight
}
viewAttributes:{
{@selector(setBackgroundColor:), [UIColor clearColor]}
}],
.alignSelf = CKStackLayoutAlignSelfStretch
}
}]];
}
Если у кого есть какие-либо рекомендации, которые были бы весьма признателен.
Кредит на этот вопрос Марко Серо, который разместил его первоначально здесь: https://github.com/facebook/componentkit/вопросы/62 –