ABAddressBookRef
電話帳の人の情報を取得するために使用しています。正常に動作しますが、 の色を変更したいUINavigationBar
ですABPeoplePickerNavigationController
。
これは可能ですか?できれば、やり方を教えてください。
ABAddressBookRef
電話帳の人の情報を取得するために使用しています。正常に動作しますが、 の色を変更したいUINavigationBar
ですABPeoplePickerNavigationController
。
これは可能ですか?できれば、やり方を教えてください。
ABPeoplePickerNavigationController
外観プロキシを使用して、次のようにナビゲーション バーの外観を制御できます。
赤いバーと白いバーのボタン アイテムの場合:
[[UINavigationBar appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setBarTintColor:[UIColor redColor]];
[[UIBarButtonItem appearanceWhenContainedIn:[ABPeoplePickerNavigationController class], nil] setTintColor:[UIColor whiteColor]];
picker.topViewController.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
これを試して:
static BOOL foundSearchBar = NO;
- (void)findSearchBar:(UIView*)parent mark:(NSString*)mark {
for( UIView* v in [ subviews] ) {
if( foundSearchBar ) return;
NSLog(@"%@%@",mark,NSStringFromClass([v class]));
if( [v isKindOfClass:[UISearchBar class]] ) {
[(UISearchBar*)v setTintColor:[UIColor blackColor]];
foundSearchBar = YES;
break;
}
[self findSearchBar:v mark:[mark stringByAppendingString:@"> "]];
}
}
- (void)pickPerson:(BOOL)animated {
foundSearchBar = NO;
ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init];
[[picker navigationBar] setTintColor:[UIColor blackColor]];
picker.peoplePickerDelegate = self;
picker.displayedProperties = [NSArray arrayWithObjects:
[NSNumber numberWithInt:kABPersonEmailProperty],
nil];
[self presentModalViewController:picker animated:animated];
[picker release];
[self findSearchBar:[picker view] mark:@" "];
}
ABPeoplePickerNavigationControllerのUISearchBarの色を変更するに は、このように使用します....
objPicker.ViewController.searchDisplayController.searchBar.tintColor = [UIColor colorWithRed:0.294 green:0.278 blue:0.247 alpha:1.0];
ABPeoplePickerNavigationController 内の UISearchBar の tintColor を変更する
このコードを試して、ABPeoplePickerNavigationController の色を変更できます
objPicker.ViewController.navigationController.navigationBar.tintColor = [UIColor redColor];
または、 RGBカラーを設定できます
objPicker.ViewController.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.274 green:0.270 blue:0.268 alpha:0.8];