Цвет фона UILabel

#iphone #objective-c

#iPhone #objective-c

Вопрос:

Я пытаюсь изменить цвет фона UILabel с помощью этого кода

 - (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];


    m_ShopName.text = m_CurrShop.m_Name;
    m_ShopAddress.layer.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0].CGColor; 
}
  

но ничего не происходит.

Ответ №1:

Это поможет вам

 UILable *lbl = [[UILabel alloc]initWithFrame:CGRectMake(10,20,50,200)];
lbl.backgroundColor = [UIColor redColor];
  

Ответ №2:

Можете ли вы это сделать:

 - (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];


    m_ShopName.text = m_CurrShop.m_Name;
    m_ShopAddress.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0]; 
}
  

Ответ №3:

Я всегда делал следующее

m_ShopAddress.backgroundColor = [UIColor red];

Когда я хотел изменить альфа-версию…

m_ShopAddress.alpha = 0.0f;

Ответ №4:

Альфа-значение 0 означает, что он полностью прозрачен. Вероятно, поэтому ничего не происходит (что бы вы под этим ни подразумевали).

И я бы обращался к цвету фона не к слою, а непосредственно к UILabel.

Ответ №5:

Если вы используете раскадровку, проверьте, есть ли у вас цвет для фона просмотра в раскадровке. Для меня цвет фона просмотра переопределял цвет слоя. Я изменил цвет фона для представления в раскадровке на стандартный, и это исправило его для меня.

Итак, у меня был код:

 func select() -> Void {
    imageViewBackgroundView.layer.backgroundColor = UIColor.black.cgColor
    cellImageView.layer.backgroundColor = UIColor.black.cgColor
    cellLabel.layer.backgroundColor = UIColor.black.cgColor
    cellLabel.textColor = UIColor.white
}
  

Метка ячейки была фоном просмотра, который не менялся. Когда-то я задавал цвет фона для представления в раскадровке. Как только я изменил вид фона для метки ячейки на значение по умолчанию, цвет слоя вступил в силу.

Просмотр фона