단추의 제목 레이블을 설정하는 데 문제가 있습니다. 기본적으로 나는 2 개의 스크린을 가지고 있고 그들 모두는이 버튼을 가지고 있지만, 둘 다 서로 다른 "숫자"를 가지고있다. 무슨 일이 일어나고있는 것은 버튼 제목이 내가 현재 사용중인 화면을 정확하게 반영하기까지 1-2 초가 걸리는 매우 눈에 띄는 지연입니다. 나는 [self.button reloadInputViews];
을 넣으려고했으나 아직 다시로드하지 않았고 여전히 지연이 있습니다.UIButton 제목 레이블 지연
[self.button setTitle:[NSString stringWithFormat:@"%d", [stringValue integerValue]]
forState:UIControlStateNormal];
누군가 내가 버튼에 제목 라벨을 새로 고칠 수있는 방법을 알고 있습니까? 도와 주셔서 감사합니다!
EDIT : 컨텍스트에 대해 더 많은 코드
self.guestsField = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.guestsField.frame = CGRectMake(self.guestsLabel.frame.origin.x + self.guestsLabel.frame.size.width, 100, 40, 30);
self.guestsField.titleLabel.font = [UIFont systemFontOfSize:20];
[self.guestsField addTarget:self action:@selector(pressGuestsField:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:self.guestsField];'
myFunction이 {
NSDictionary와의 딕셔너리 * = [사용자 정보 알림]; 그것을 고정
if ([dict count] > 0)
{
[self.guestsField setTitle:[NSString stringWithFormat:@"%d", [GetOrder.NumberOfGuests integerValue]] forState:UIControlStateNormal];
}
}
: 다른 스레드에서 myFunction이 실행되었다. 기본 스레드의 setTitle을 그냥 수행했습니다.
이 코드를 어디에서 호출하고 있으며 그 전후에 어떤 일이 발생합니까? UI 스레드는 제목을 자동으로 업데이트하지만 다른 작업을 수행하는 데 바쁜 경우 기다려야합니다. –
@MarcusAdams에 동의합니다 ... 뭔가 UI를 방해하는 주요 스레드를 씹고있다. – Dan
한 화면에서 다른 화면으로 전환하는 즉시 실행되는 함수에서이 코드를 호출합니다. –