0

有没有办法自定义friendsPickerViewControllerfacebook ios sdk 3.1提供的样式?

我正在尝试改变 facebook 中导航栏的外观friendsPickerViewController

似乎没有任何效果。甚至以下内容:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"customNavBarBGImage"]  forBarMetrics:UIBarMetricsDefault];
4

4 回答 4

3

这是可能的,但它有点像黑客。首先,FBFriendPickerViewController使用 aUIToolbar而不是 a UINavigationBar

您必须呈现FBFriendPickerViewController,然后浏览其视图的子视图以找到UIToolbar显示在顶部的那个。一旦你找到了,UIToolbar你可以随意修改它。

因此,在要显示好友选择器的视图控制器的代码中,您可以这样做:

FBFriendPickerViewController *fbFriendPickerController = [[FBFriendPickerViewController alloc] init];

[fbFriendPickerController loadData];
[self presentViewController:fbFriendPickerController animated:NO completion:nil];

//Search through subviews of friendPicker until we find the UIToolbar
//NOTE: you have to do this after calling [self presentViewController...], otherwise
//the UIToolbar won't be in the array of subviews
NSArray *subs = [fbFriendPickerController.view subviews];
for (UIView *child in subs) {
    if ([child isKindOfClass:[UIToolbar class]]) {
        UIToolbar *bar = (UIToolbar *)child;
        [bar setBackgroundImage:[UIImage imageNamed:@"YOUR_IMAGE.png"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
    }
}
于 2013-01-30T01:50:48.407 回答
0

如果你想自定义它,你必须创建一个新的视图控制器,它是 FBFriendPickerViewController 的子类,带有一个 XIB 文件。

在您的 xib 文件中,为您的导航添加一个标题视图、一个表格视图和一个微调器。将 tableview 和 spinner 链接到文件所有者。并根据需要自定义标题视图。

于 2013-02-27T15:38:10.517 回答
0

如果您的应用程序中的所有工具栏颜色相同没有任何问题,请尝试:[[UIToolbar appearance] setTintColor:[UIColor myColor]];

在您的应用委托的didFinishLaunchingWithOptions方法中。

感谢 gwilkins 指出它是一个 UIToolbar!

于 2013-05-22T23:50:30.653 回答
0

不幸的是,您无法自定义导航栏的外观。自定义仅限于显示/隐藏完成按钮和工具栏等功能,以及过滤掉要在选择器中显示的朋友。

于 2012-12-28T01:55:59.643 回答