Twitter-esque UITabBarController?

Mos*_*she 14 iphone twitter uitabbarcontroller ios

我想创建一个使用UITabBarController的应用程序,它类似于iPhone和iPod touch的Twitter应用程序.(用于在内容视图之间切换的未读和滑动箭头的蓝灯).

是否有捷径可寻?任何开源代码?

编辑:

我加了一笔赏金.我正在寻找适用于各种设备以及iOS 4和iOS 5的解决方案.

编辑:

我搞砸了我的原始代码,我找到了一个简单的解决方案.我在动画代码中为iOS 5添加了以下检查:

//  iOS 5 changes the subview hierarchy 
//  so we need to check for it here

BOOL isUsingVersionFive = NO;
NSString *reqSysVer = @"5.0";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending){
    //On iOS 5, otherwise use old index
    isUsingVersionFive = YES;
}
Run Code Online (Sandbox Code Playgroud)

然后,而不是这个:

CGFloat tabMiddle = CGRectGetMidX([[[[self tabBar] subviews] objectAtIndex:index] frame]);
Run Code Online (Sandbox Code Playgroud)

......我用这个:

CGFloat tabMiddle = CGRectGetMidX([[[[self tabBar] subviews] objectAtIndex:index + (isUsingVersionFive ? 1 : 0)] frame]);
Run Code Online (Sandbox Code Playgroud)

尽管如此,我仍然坚持赏金,以防万一我有机会找到适合答案的东西.

Raf*_*ega 6

我将创建标准UITabBarController的子类,并为蓝光和滑动箭头添加几个子视图.不应该太难实现.

编辑: 这里有一些应该在你的子类中的东西的想法.我甚至不知道这段代码是否会编译.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
        super.delegate = self;
    }
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    //Create blueLight
    UIImage* img = [UIImage imageNamed:@"blue_light.png"]
    self.blueLight = [[UIImageView alloc] initWithImage:img];
    self.blueLight.center = CGPointMake(320, 460); //I'm using arbitrary numbers here, position it correctly
    [self.view addSubview:self.blueLight];
    [self.blueLight release];

    //Create arrow, similar code.
}

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{
    //Put code here that moves (animates?) the blue light and the arrow


    //Tell your delegate, what just happened.
    if([myDelegate respondsToSelector:@selector(tabBarController:didSelectViewController:)]){
        [myDelegate tabBarController:self didSelectViewController:viewController]
    }
}
Run Code Online (Sandbox Code Playgroud)