У меня есть сегмент кода, который выполняется каждый раз, когда происходит изменение базы данных. По сути, у меня есть метка внутри родительского представления. Метка обновляется одним из множества сообщений о состоянии, каждое из которых находится в отдельной строке, оканчивающейся новой строкой (\ n). Каждое сообщение о статусе должно быть только в одной строке и не повторяться.
Проблема, с которой я столкнулся, заключается в том, что все работает нормально, когда View сначала перезагружается. Однако, когда я нахожусь на экране и происходит изменение в фоновом режиме, время от времени сообщение о состоянии отображается в нескольких строках. В то время как sizeToFit отлично справляется с созданием метки так же высоко, как и родительский вид, но она плохо работает с точки зрения ширины. То есть он разбивает текст на несколько строк, а не только на разрывы строк.
Что я могу сделать?
self.messageLabel.text = message; //lets get the status message.
[self.messageLabel sizeToFit];
[self.messageLabel setNeedsDisplay];
CGRect frame = [self.messageView frame];
frame.size.height = self.messageLabel.bounds.size.height;
self.messageView.frame = frame;
self.messageLabel.center = CGPointMake(CGRectGetMidX(self.messageView.bounds), CGRectGetMidY(self.messageView.bounds)-(self.messageView.cornerRadius/4));
self.messageLabel.backgroundColor = [UIColor orangeColor];
[self.messageView setNeedsDisplay];