美文网首页iOS开发攻城狮的集散地
iOS模仿微博写的一个Demo,供大家参考

iOS模仿微博写的一个Demo,供大家参考

作者: Kenter_Huang | 来源:发表于2016-11-22 12:06 被阅读2216次

    本文主要讲解模仿微博的地方吧,至于其他的功能(定位,环信,极光推送,3D Touch 和 指纹解锁),有时间再另起一篇博客讲解。

    这是项目的开源地址:JTBlogDemo

    首先我们需要自定义TabBar,在正中间加上一个‘加号’的按钮。我们需要创建一个类JTTabBar,继承自UITabBar,把这个按钮添加上去。话不多说,上代码:

    - (instancetype) initWithFrame:(CGRect)frame {
        
        if (self = [super initWithFrame:frame]) {
            
            [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor grayColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"Helvetica" size:12.0f],NSFontAttributeName,nil] forState:UIControlStateNormal];
            [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:AppTintColor, NSForegroundColorAttributeName, [UIFont fontWithName:@"Helvetica" size:12.0f],NSFontAttributeName,nil] forState:UIControlStateSelected];
            self.tintColor = AppTintColor;
            
            UIButton *blogBtn = [[UIButton alloc] init];
            [blogBtn setBackgroundImage:[UIImage imageNamed:@"tabbar_compose_button"] forState:UIControlStateNormal];
            [blogBtn setBackgroundImage:[UIImage imageNamed:@"tabbar_compose_button_highlighted"] forState:UIControlStateHighlighted];
            [blogBtn setImage:[UIImage imageNamed:@"tabbar_compose_icon_add"] forState:UIControlStateNormal];
            [blogBtn setImage:[UIImage imageNamed:@"tabbar_compose_icon_add_highlighted"] forState:UIControlStateHighlighted];
            
            blogBtn.size = [UIImage imageNamed:@"tabbar_compose_button"].size;
            [blogBtn addTarget:self action:@selector(sendBlog:) forControlEvents:UIControlEventTouchUpInside];
            [self addSubview:blogBtn];
            self.blogBtn = blogBtn;
        }
        
        return self;
    }
    

    效果如图:

    1.png

    同时为JTTabBar加一个代理,用于响应点击:

    @protocol JTTabBarDelegate <UITabBarDelegate>
    @optional
    - (void)selectSendBlogBtn:(JTTabBar *)tabBar;
    @end
    
    - (void)sendBlog:(UIButton *)sender {
        if (self.delegate && [self.delegate respondsToSelector:@selector(selectSendBlogBtn:)]) {
            [self.delegate selectSendBlogBtn:self];
        }
    }
    

    在JTTabBarController中使用KVC直接将UITabBar替换成我们自定义的TabBar,具体看Demo。我们点击发微博按钮时,当我们点击‘加号’按钮时,直接present发微博的页面JTBlogViewController,同时调用方法 - (void)appearAnimation,播放类似微博的弹簧动画 。点击其中一个按钮或者旁边的时候dismiss发微博的页面JTBlogViewController,同时调用方法 - (void)disAppearAnimation,播放消失动画。


    2.png

    进入编辑页面时,初始化JTBlogEditView,创建编辑页面,包括下面的定位,公开程度,以及对应的照片,拍照,视频和表情的按钮。具体选择照片,视频和拍照等(图片是在模拟器的50%scale下截的图,不是很清晰)


    4.png

    最后涉及到一些照片选择,拍照,视频等,我里面限定的是最多选取9张图片,当然你可以根据自己的需求来设定。为了避免第二次进入ImagePickerViewController中选择照片,会重复的问题,每次选完照片是就会将已经选择的照片全部删除(不包括拍的照片),然后保存到缓存中,确保不会出现重复的照片。当我们发布时会将缓存清空。另外,若用户点击取消有一个保存草稿的选项,用户可以保存编辑的文字,下次进入时会自动出现在编辑框。

    好啦,第一次在简书写博客,就这么多吧!还有很多细节没有讲,大家参考Demo吧_

    相关文章

      网友评论

      本文标题:iOS模仿微博写的一个Demo,供大家参考

      本文链接:https://www.haomeiwen.com/subject/abpppttx.html