1
UITableView가 포함 된 UIViewController 클래스가 있습니다. 테이블 뷰 헤더에는 UIToolbar가 포함되어 있으며, 다른 것들 중에서도 UISearchBar가 포함되어 있습니다. iOS8에서 검색 막대를 탭하여 검색 할 때 검색 디스플레이 컨트롤러는 예상대로 막대를 화면 맨 위로 움직이게하지만 검색 막대는 왼쪽에 여백이 없습니다.UIToolbar의 iOS8 UISearchBar에는 패딩이 남아 있지 않습니다.
은 가장 다음과 같다 재현 코드 아래로 벗겨 :
- (void)viewDidLoad {
[super viewDidLoad];
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0, 0.0, [self tableView].frame.size.width, 44.0)];
if ([toolbar respondsToSelector:@selector(setBarTintColor:)]) {
[toolbar setBarTintColor:[UIColor lightGrayColor]];
}
[[self tableView] setTableHeaderView:toolbar];
UIView *searchBarView = [[UIView alloc] initWithFrame:[[[self searchDisplayController] searchBar] frame]];
[[[self searchDisplayController] searchBar] setBackgroundImage:[[UIImage alloc] init]];
[searchBarView addSubview:[[self searchDisplayController] searchBar]];
[[[self searchDisplayController] searchBar] setText:@""];
UIBarButtonItem *searchBarItem = [[UIBarButtonItem alloc] initWithCustomView:searchBarView];
[toolbar setItems:@[searchBarItem]];
}
어떤 도움/제안 크게 감사합니다.
편집 : 이것은 아이폰 OS 6.1에서 제대로 작동하고 7.0/1
답변을 해당 링크가 깨진 경우에만 쓸모 없게됩니다 은 다음 하위 클래스에서 당신은없는 공간을 추가하는 코드를 추가 만들었습니다. 링크의 콘텐츠가 OP의 질문에 어떻게 도움이되는지에 대한 설명과 코드를 포함하십시오. –