상단에 검색 표시 줄이있는 간단한 테이블보기 컨트롤러가 있습니다. 사용자가 입력을 시작하고 결과가 없으면 프로그래밍 방식으로 만든 UIButton을 표시합니다.Table View Controller에서 검색 할 때 UILabel과 비교하여 동적으로 생성 된 UIButton으로 화면 깜박임
이상한 점은 내가 입력하는 모든 문자와 함께 UIButton을 사용하면 화면이 새로 고침되고 단추의 텍스트가 다시 깜박이는 것을 볼 수 있다는 사실입니다. 매우 눈에 띄며 매끄럽지 않습니다. 따라서 사용자는 한 글자를 입력하고 "여기를 클릭하여 만듭니다"라고 말합니다. 그러나 각 글자를 입력하면 해당 텍스트가 다시 렌더링 된 것처럼 보입니다.
그러나 UILabel과 똑같이 입력하면 각 입력 된 문자로 다시 렌더링되지 않으며 매우 매끄 럽습니다.
사용자가 입력하는 이름이 존재하지 않으면 버튼을 클릭하면 사용자 이름이 만들어지기 때문에 버튼을 사용하는 이유가 있습니다. 나는 UILabel에 대한 선택자를 호출 할 수 없다고 생각 하나? 어떤 결과가 발견되지 않으면
아래의 방법에서
viewDidLoad:
self.createButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//self.createButton = [[UIButton alloc] init];
self.createButton.frame = CGRectMake(-15, 90, 300, 30);
[self.createButton addTarget:self action:@selector(createButtonWasTapped:) forControlEvents:UIControlEventTouchUpInside];
self.createButton.backgroundColor = [UIColor clearColor];
self.createButton.showsTouchWhenHighlighted = YES;
self.createButton.tintColor = [UIColor whiteColor];
self.createButton.titleLabel.font = [UIFont systemFontOfSize:18.0];
//self.createButton.opaque = NO;
self.createButton.hidden = YES;
[self.view addSubview:self.createButton];
에서, 나는 동적으로 버튼을 만드는거야 : 여기
내가있는 UIButton으로 사용하고 코드의
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
self.nameAddSearchBar.showsCancelButton = YES;
_autocompleteFetchedResultsController = nil;
NSError *error;
if (![[self autocompleteFetchedResultsController] performFetch:&error])
{
// Handle Error
}
else
{
[self.nameAddSearchTableView reloadData];
[self.createButton setHidden:_autocompleteFetchedResultsController.fetchedObjects.count > 0];
[self.createButton setTitle:[NSString stringWithFormat:@"Click Here to Create %@", self.nameAddSearchBar.text] forState:UIControlStateNormal];
... more code
}
버튼 선택기가 전화를 겁니다.
- (void)createButtonWasTapped:(id)sender
{
self.selectedName = self.nameAddSearchBar.text;
[self.delegate nameTextFieldTableViewController:self didSelectCell:self.selectedName];
[self dismissViewControllerAnimated:YES completion:nil];
}
UILabel에서 셀렉터를 호출하는 방법을 찾을 수 없지만 가능한 경우 문제가 해결됩니다. 내가 할 수 없다면, 나는 왜 각 입력 된 문자로 내 "버튼"을 다시 렌더링하는지 이해해야합니다.
도움이 될 것입니다. 감사합니다,
먼저 텍스트를 설정하고 버튼을 표시하려고합니까? – alex
안녕하세요 알렉스 - 메시지 주셔서 감사합니다; 불행하게도 그것은 작동하지 않았다. .. 다른 어떤 생각? – amitsbajaj