基于Objective-C的仿百思不得姐社交应用设计源码地址
该项目是一个高度仿制的社交应用设计源码,基于Objective-C语言开发,共包含1244个文件,涵盖多种文件类型,包括419个PNG图片文件、404个头文件(.h)、163个JSON配置文件、155个Objective-C实现文件(.m)、21个XIB界面文件、17个Objective-C的私有类扩展文件(.mm)、14个Mac OS文件夹(.DS_Store)、10个项目配置文件(.xcconfig)、8个预编译头文件(.pch)和8个Markdown文档(.md)。该项目实现了精华、新帖、发布、关注、我的五大功能模块,采用了MVC设计模式,结合纯代码和XIB混合开发。UI布局使用了Masonry和AutoLayout技术,首页精华模块采用了父子控制器技术,音频视频播放功能集成了系统自带的分享和评论详情界面。发布功能集成了弹出动画,关注界面充分利用了XIB的优势,图片加载使用了SDWebImage,遮盖提示使用了MBProgressHUD,还包含了清除缓存功能和使用UIWebView进行网页加载等技术。
关键词
Objective-C iOS社交应用 MVC设计模式 SDWebImage MBProgressHUD
目录结构
├── .DS_Store ├── .gitignore ├── 11-BaiSi(推荐关注) ├── .DS_Store ├── 06-BaiSi.xcodeproj ├── project.pbxproj ├── project.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata ├── xcschemes ├── 06-BaiSi.xcscheme ├── 06-BaiSi.xcworkspace ├── contents.xcworkspacedata ├── BaiSi ├── .DS_Store ├── 1.png ├── 2.png ├── Assets.xcassets ├── AppIcon.appiconset ├── AppIcon29x29.png ├── AppIcon29x29@2x.png ├── AppIcon29x29@3x.png ├── AppIcon40x40@2x.png ├── AppIcon40x40@3x.png ├── AppIcon40x40~ipad.png ├── AppIcon50x50@2x~ipad.png ├── AppIcon50x50~ipad.png ├── AppIcon57x57.png ├── AppIcon57x57@2x.png ├── AppIcon60x60@2x.png ├── AppIcon60x60@3x.png ├── AppIcon72x72@2x~ipad.png ├── AppIcon76x76@2x~ipad.png ├── Contents.json ├── BrandAsset.launchimage ├── Contents.json ├── LaunchImage-568h@2x.png ├── LaunchImage-700@2x.png ├── LaunchImage-800-667h@2x.png ├── LaunchImage-800-Portrait-736h@3x.png ├── LaunchImage.png ├── Comment ├── Contents.json ├── Profile_manIcon.imageset ├── Contents.json ├── Profile_manIcon.png ├── Profile_manIcon@2x.png ├── Profile_manIcon@3x.png ├── Profile_womanIcon.imageset ├── Contents.json ├── Profile_womanIcon.png ├── Profile_womanIcon@2x.png ├── Profile_womanIcon@3x.png ├── comment-bar-bg.imageset ├── Contents.json ├── comment-bar-bg.png ├── comment-bar-bg@2x.png ├── comment-bar-keyboard-click.imageset ├── Contents.json ├── comment-bar-keyboard-click.png ├── comment-bar-keyboard-click@2x.png ├── comment-bar-keyboard-click@3x.png ├── comment-bar-keyboard.imageset ├── Contents.json ├── comment-bar-keyboard.png ├── comment-bar-keyboard@2x.png ├── comment-bar-keyboard@3x.png ├── comment-bar-record-click.imageset ├── Contents.json ├── comment-bar-record-click.png ├── comment-bar-record-click@2x.png ├── comment-bar-record-click@3x.png ├── comment-bar-record.imageset ├── Contents.json ├── comment-bar-record.png ├── comment-bar-record@2x.png ├── comment-bar-record@3x.png ├── comment-bar-voice-click.imageset ├── Contents.json ├── comment-bar-voice-click.png ├── comment-bar-voice-click@2x.png ├── comment-bar-voice-click@3x.png ├── comment-bar-voice.imageset ├── Contents.json ├── comment-bar-voice.png ├── comment-bar-voice@2x.png ├── comment-bar-voice@3x.png ├── commentLikeButton.imageset ├── Contents.json ├── commentLikeButton.png ├── commentLikeButton@2x.png ├── commentLikeButtonClick.imageset ├── Contents.json ├── commentLikeButtonClick.png ├── commentLikeButtonClick@2x.png ├── comment_bar_at_icon.imageset ├── Contents.json ├── comment_bar_at_icon.png ├── comment_bar_at_icon@2x.png ├── comment_bar_at_icon@3x.png ├── comment_bar_at_icon_click.imageset ├── Contents.json ├── comment_bar_at_icon_click.png ├── comment_bar_at_icon_click@2x.png ├── comment_bar_at_icon_click@3x.png ├── comment_nav_item_share_icon.imageset ├── Contents.json ├── comment_nav_item_share_icon.png ├── comment_nav_item_share_icon@2x.png ├── comment_nav_item_share_icon@3x.png ├── comment_nav_item_share_icon_click.imageset ├── Contents.json ├── comment_nav_item_share_icon_click.png ├── comment_nav_item_share_icon_click@2x.png ├── comment_nav_item_share_icon_click@3x.png ├── Contents.json ├── Essence ├── Contents.json ├── Profile_AddV_authen.imageset ├── Contents.json ├── Profile_AddV_authen.png ├── Profile_AddV_authen@2x.png ├── Profile_AddV_authen@3x.png ├── cell-button-line.imageset ├── Contents.json ├── cell-button-line.png ├── cell-button-line@2x.png ├── cell-content-line.imageset ├── Contents.json ├── cell-content-line.png ├── cell-content-line@2x.png ├── cellmorebtnclick.imageset ├── Contents.json ├── cellmorebtnclick.png ├── cellmorebtnclick@2x.png ├── cellmorebtnnormal.imageset ├── Contents.json ├── cellmorebtnnormal.png ├── cellmorebtnnormal@2x.png ├── common-gif.imageset ├── Contents.json ├── common-gif.png ├── common-gif@2x.png ├── defaultUserIcon.imageset ├── Contents.json ├── defaultUserIcon.png ├── defaultUserIcon@2x.png ├── defaultUserIcon@3x.png ├── imageBackground.imageset ├── Contents.json ├── imageBackground.png ├── imageBackground@2x.png ├── imageBackground@3x.png ├── mainCellBackground.imageset ├── Contents.json ├── mainCellBackground.png ├── mainCellBackground@2x.png ├── mainCellCai.imageset ├── Contents.json ├── mainCellCai.png ├── mainCellCai@2x.png ├── mainCellCaiClick.imageset ├── Contents.json ├── mainCellCaiClick.png ├── mainCellCaiClick@2x.png ├── mainCellComment.imageset ├── Contents.json ├── mainCellComment.png ├── mainCellComment@2x.png ├── mainCellCommentClick.imageset ├── Contents.json ├── mainCellCommentClick.png ├── mainCellCommentClick@2x.png ├── mainCellDing.imageset ├── Contents.json ├── mainCellDing.png ├── mainCellDing@2x.png ├── mainCellDingClick.imageset ├── Contents.json ├── mainCellDingClick.png ├── mainCellDingClick@2x.png ├── mainCellShare.imageset ├── Contents.json ├── mainCellShare.png ├── mainCellShare@2x.png ├── mainCellShareClick.imageset ├── Contents.json ├── mainCellShareClick.png ├── mainCellShareClick@2x.png ├── playButton.imageset ├── Contents.json ├── playButton.png ├── playButton@2x.png ├── playButton@3x.png ├── playButtonClick.imageset ├── Contents.json ├── playButtonClick.png ├── playButtonClick@2x.png ├── playButtonClick@3x.png ├── playButtonPause.imageset ├── Contents.json ├── playButtonPause.png ├── playButtonPause@2x.png ├── playButtonPause@3x.png ├── playButtonPlay.imageset ├── Contents.json ├── playButtonPlay.png ├── playButtonPlay@2x.png ├── playButtonPlay@3x.png ├── post_placeholderImage.imageset ├── Contents.json ├── post_placeholderImage.png ├── post_placeholderImage@2x.png ├── post_placeholderImage@3x.png ├── see-big-picture-background.imageset ├── Contents.json ├── see-big-picture-background.png ├── see-big-picture-background@2x.png ├── see-big-picture.imageset ├── Contents.json ├── see-big-picture.png ├── see-big-picture@2x.png ├── see-big-picture@3x.png ├── show_image_back_icon.imageset ├── Contents.json ├── show_image_back_icon.png ├── show_image_back_icon@2x.png ├── show_image_back_icon@3x.png ├── showbig-left-icon.imageset ├── Contents.json ├── showbig-left-icon.png ├── showbig-left-icon@2x.png ├── showbig-left-icon@3x.png ├── tagicon.imageset ├── Contents.json ├── tagicon.png ├── tagicon@2x.png ├── tagicon@3x.png ├── video-play.imageset ├── Contents.json ├── video-play.png ├── video-play@2x.png ├── video-play@3x.png ├── FriendTrends ├── Contents.json ├── FollowBtnBg.imageset ├── Contents.json ├── FollowBtnBg.png ├── FollowBtnBg@2x.png ├── FollowBtnClickBg.imageset ├── Contents.json ├── FollowBtnClickBg.png ├── FollowBtnClickBg@2x.png ├── friendsTrend_login.imageset ├── Contents.json ├── friendsTrend_login.png ├── friendsTrend_login@2x.png ├── friendsTrend_login_click.imageset ├── Contents.json ├── friendsTrend_login_click.png ├── friendsTrend_login_click@2x.png ├── header_cry_icon.imageset ├── Contents.json ├── header_cry_icon.png ├── header_cry_icon@2x.png ├── Html ├── Contents.json ├── Left_Arrow.imageset ├── Contents.json ├── Left_Arrow.png ├── Right_Arrow.imageset ├── Contents.json ├── Right_Arrow.png ├── LoginRegister ├── Contents.json ├── loginBtnBg.imageset ├── Contents.json ├── loginBtnBg.png ├── loginBtnBg@2x.png ├── loginBtnBgClick.imageset ├── Contents.json ├── loginBtnBgClick.png ├── loginBtnBgClick@2x.png ├── login_QQ_icon.imageset ├── Contents.json ├── login_QQ_icon.png ├── login_QQ_icon@2x.png ├── login_QQ_icon@3x.png ├── login_QQ_icon_click.imageset ├── Contents.json ├── login_QQ_icon_click.png ├── login_QQ_icon_click@2x.png ├── login_QQ_icon_click@3x.png ├── login_close_icon.imageset ├── Contents.json ├── login_close_icon.png ├── login_close_icon@2x.png ├── login_close_icon@3x.png ├── login_register_background.imageset ├── Contents.json ├── login_register_background.png ├── login_register_background@2x.png ├── login_register_background@3x.png ├── login_register_button.imageset ├── Contents.json ├── login_register_button.png ├── login_register_button_click.imageset ├── Contents.json ├── login_register_button_click.png ├── login_register_left_line.imageset ├── Contents.json ├── login_register_left_line.png ├── login_register_left_line@2x.png ├── login_register_left_line@3x.png ├── login_register_right_line.imageset ├── Contents.json ├── login_register_right_line.png ├── login_register_right_line@2x.png ├── login_register_right_line@3x.png ├── login_rgister_textfield_bg.imageset ├── Contents.json ├── login_rgister_textfield_bg.png ├── login_rgister_textfield_bg@2x.png ├── login_rgister_textfield_bg@3x.png ├── login_sina_icon.imageset ├── Contents.json ├── login_sina_icon.png ├── login_sina_icon@2x.png ├── login_sina_icon@3x.png ├── login_sina_icon_click.imageset ├── Contents.json ├── login_sina_icon_click.png ├── login_sina_icon_click@2x.png ├── login_sina_icon_click@3x.png ├── login_tecent_icon.imageset ├── Contents.json ├── login_tecent_icon.png ├── login_tecent_icon@2x.png ├── login_tecent_icon@3x.png ├── login_tecent_icon_click.imageset ├── Contents.json ├── login_tecent_icon_click.png ├── login_tecent_icon_click@2x.png ├── login_tecent_icon_click@3x.png ├── Mine ├── Contents.json ├── mine-icon-activity.imageset ├── Contents.json ├── mine-icon-activity.png ├── mine-icon-activity@2x.png ├── mine-icon-feedback.imageset ├── Contents.json ├── mine-icon-feedback.png ├── mine-icon-feedback@2x.png ├── mine-icon-manhua.imageset ├── Contents.json ├── mine-icon-manhua.png ├── mine-icon-manhua@2x.png ├── mine-icon-more.imageset ├── Contents.json ├── mine-icon-more.png ├── mine-icon-more@2x.png ├── mine-icon-nearby.imageset ├── Contents.json ├── mine-icon-nearby.png ├── mine-icon-nearby@2x.png ├── mine-icon-preview.imageset ├── Contents.json ├── mine-icon-preview.png ├── mine-icon-preview@2x.png ├── mine-icon-recentHot.imageset ├── Contents.json ├── mine-icon-recentHot.png ├── mine-icon-recentHot@2x.png ├── mine-icon-search.imageset ├── Contents.json ├── mine-icon-search.png ├── mine-icon-search@2x.png ├── mine-my-post.imageset ├── Contents.json ├── mine-my-post.png ├── mine-my-post@2x.png ├── mine-setting-iconN.imageset ├── Contents.json ├── mine-setting-iconN.png ├── mine-setting-iconN@2x.png ├── mine-setting-iconN@3x.png ├── mine_icon_nearby.imageset ├── Contents.json ├── mine_icon_nearby.png ├── mine_icon_nearby@2x.png ├── mine_icon_random.imageset ├── Contents.json ├── mine_icon_random.png ├── mine_icon_random@2x.png ├── mine_msg_icon.imageset ├── Contents.json ├── mine_msg_icon.png ├── mine_msg_icon@2x.png ├── mine_msg_icon@3x.png ├── setup-head-default.imageset ├── Contents.json ├── setup-head-default.png ├── setup-head-default@2x.png ├── Navigation ├── Contents.json ├── MainTagSubIcon.imageset ├── Contents.json ├── MainTagSubIcon.png ├── MainTagSubIcon@2x.png ├── MainTagSubIcon@3x.png ├── MainTagSubIconClick.imageset ├── Contents.json ├── MainTagSubIconClick.png ├── MainTagSubIconClick@2x.png ├── MainTagSubIconClick@3x.png ├── MainTitle.imageset ├── Contents.json ├── MainTitle.png ├── MainTitle@2x.png ├── MainTitle@3x.png ├── friendsRecommentIcon-click.imageset ├── Contents.json ├── friendsRecommentIcon-click.png ├── friendsRecommentIcon-click@2x.png ├── friendsRecommentIcon-click@3x.png ├── friendsRecommentIcon.imageset ├── Contents.json ├── friendsRecommentIcon.png ├── friendsRecommentIcon@2x.png ├── friendsRecommentIcon@3x.png ├── mine-moon-icon-click.imageset ├── Contents.json ├── mine-moon-icon-click.png ├── mine-moon-icon-click@2x.png ├── mine-moon-icon.imageset ├── Contents.json ├── mine-moon-icon.png ├── mine-moon-icon@2x.png ├── mine-moon-icon@3x.png ├── mine-setting-icon-click.imageset ├── Contents.json ├── mine-setting-icon-click.png ├── mine-setting-icon-click@2x.png ├── mine-setting-icon-click@3x.png ├── mine-setting-icon.imageset ├── Contents.json ├── mine-setting-icon.png ├── mine-setting-icon@2x.png ├── mine-setting-icon@3x.png ├── mine-sun-icon-click.imageset ├── Contents.json ├── mine-sun-icon-click.png ├── mine-sun-icon-click@2x.png ├── mine-sun-icon-click@3x.png ├── mine-sun-icon.imageset ├── Contents.json ├── mine-sun-icon.png ├── mine-sun-icon@2x.png ├── mine-sun-icon@3x.png ├── nav_coin_icon.imageset ├── Contents.json ├── nav_coin_icon.png ├── nav_coin_icon@2x.png ├── nav_coin_icon@3x.png ├── nav_coin_icon_click.imageset ├── Contents.json ├── nav_coin_icon_click.png ├── nav_coin_icon_click@2x.png ├── nav_coin_icon_click@3x.png ├── nav_item_game_click_icon.imageset ├── Contents.json ├── nav_item_game_click_icon.png ├── nav_item_game_click_icon@2x.png ├── nav_item_game_click_icon@3x.png ├── nav_item_game_click_iconN.imageset ├── Contents.json ├── nav_item_game_click_iconN.png ├── nav_item_game_click_iconN@2x.png ├── nav_item_game_click_iconN@3x.png ├── nav_item_game_icon.imageset ├── Contents.json ├── nav_item_game_icon.png ├── nav_item_game_icon@2x.png ├── nav_item_game_icon@3x.png ├── nav_item_game_iconN.imageset ├── Contents.json ├── nav_item_game_iconN.png ├── nav_item_game_iconN@2x.png ├── nav_item_game_iconN@3x.png ├── navigationButtonRandom.imageset ├── Contents.json ├── navigationButtonRandom.png ├── navigationButtonRandom@2x.png ├── navigationButtonRandomClick.imageset ├── Contents.json ├── navigationButtonRandomClick.png ├── navigationButtonRandomClick@2x.png ├── navigationButtonRandomClickN.imageset ├── Contents.json ├── navigationButtonRandomClickN.png ├── navigationButtonRandomClickN@2x.png ├── navigationButtonRandomN.imageset ├── Contents.json ├── navigationButtonRandomN.png ├── navigationButtonRandomN@2x.png ├── navigationButtonReturn.imageset ├── Contents.json ├── navigationButtonReturn.png ├── navigationButtonReturn@2x.png ├── navigationButtonReturn@3x.png ├── navigationButtonReturnClick.imageset ├── Contents.json ├── navigationButtonReturnClick.png ├── navigationButtonReturnClick@2x.png ├── navigationButtonReturnClick@3x.png ├── navigationbarBackgroundWhite.imageset ├── Contents.json ├── navigationbarBackgroundWhite.png ├── Play ├── Contents.json ├── play-voice-bg-select.imageset ├── Contents.json ├── play-voice-bg-select.png ├── play-voice-bg.imageset ├── Contents.json ├── play-voice-bg.png ├── play-voice-bg@2x.png ├── play-voice-bg@3x.png ├── play-voice-bgN.imageset ├── Contents.json ├── play-voice-bgN.png ├── play-voice-bgN@2x.png ├── play-voice-icon-0.imageset ├── Contents.json ├── play-voice-icon-0.png ├── play-voice-icon-0@2x.png ├── play-voice-icon-1.imageset ├── Contents.json ├── play-voice-icon-1.png ├── play-voice-icon-1@2x.png ├── play-voice-icon-2.imageset ├── Contents.json ├── play-voice-icon-2.png ├── play-voice-icon-2@2x.png ├── play-voice-icon-3.imageset ├── Contents.json ├── play-voice-icon-3.png ├── play-voice-icon-3@2x.png ├── play-voice-stop.imageset ├── Contents.json ├── play-voice-stop.png ├── play-voice-stop@2x.png ├── play-voice-stop@3x.png ├── play.imageset ├── Contents.json ├── play.png ├── play@2x.png ├── play@3x.png ├── Post ├── Contents.json ├── chose_tag_close_icon.imageset ├── Contents.json ├── chose_tag_close_icon.png ├── chose_tag_close_icon@2x.png ├── chose_tag_close_icon@3x.png ├── post-#.imageset ├── Contents.json ├── post-#.png ├── post-#@2x.png ├── post-#@3x.png ├── post-#N.imageset ├── Contents.json ├── post-#N.png ├── post-#N@2x.png ├── post-#N@3x.png ├── post-@.imageset ├── Contents.json ├── post-@.png ├── post-@@2x.png ├── post-@@3x.png ├── post-@N.imageset ├── Contents.json ├── post-@N.png ├── post-@N@2x.png ├── post-@N@3x.png ├── post-tag-bg.imageset ├── Contents.json ├── post-tag-bg.png ├── post-tag-bg@2x.png ├── tag_add_icon.imageset ├── Contents.json ├── tag_add_icon.png ├── tag_add_icon@2x.png ├── tag_add_icon@3x.png ├── tag_add_iconN.imageset ├── Contents.json ├── tag_add_iconN.png ├── tag_add_iconN@2x.png ├── tag_add_iconN@3x.png ├── Publish ├── Contents.json ├── app_slogan.imageset ├── Contents.json ├── app_slogan.png ├── app_slogan@2x.png ├── app_slogan@3x.png ├── publish-audio.imageset ├── Contents.json ├── publish-audio.png ├── publish-audio@2x.png ├── publish-audio@3x.png ├── publish-offline.imageset ├── Contents.json ├── publish-offline.png ├── publish-offline@2x.png ├── publish-offline@3x.png ├── publish-picture.imageset ├── Contents.json ├── publish-picture.png ├── publish-picture@2x.png ├── publish-picture@3x.png ├── publish-review.imageset ├── Contents.json ├── publish-review.png ├── publish-review@2x.png ├── publish-review@3x.png ├── publish-text.imageset ├── Contents.json ├── publish-text.png ├── publish-text@2x.png ├── publish-text@3x.png ├── publish-video.imageset ├── Contents.json ├── publish-video.png ├── publish-video@2x.png ├── publish-video@3x.png ├── shareBottomBackground.imageset ├── Contents.json ├── shareBottomBackground.png ├── shareBottomBackground@2x.png ├── shareBottomBackground@3x.png ├── shareButtonCancel.imageset ├── Contents.json ├── shareButtonCancel.png ├── shareButtonCancel@2x.png ├── shareButtonCancel@3x.png ├── shareButtonCancelClick.imageset ├── Contents.json ├── shareButtonCancelClick.png ├── shareButtonCancelClick@2x.png ├── shareButtonCancelClick@3x.png ├── Pushguide ├── Contents.json ├── pushguidebot.imageset ├── Contents.json ├── pushguidebot.png ├── pushguidebot@2x.png ├── pushguidebot@3x.png ├── pushguidemid.imageset ├── Contents.json ├── pushguidemid.png ├── pushguidemid@2x.png ├── pushguidemid@3x.png ├── pushguidetop.imageset ├── Contents.json ├── pushguidetop.png ├── pushguidetop@2x.png ├── pushguidetop@3x.png ├── TabBar ├── Contents.json ├── tabBar_essence_click_icon.imageset ├── Contents.json ├── tabBar_essence_click_icon.png ├── tabBar_essence_click_icon@2x.png ├── tabBar_essence_click_icon@3x.png ├── tabBar_essence_icon.imageset ├── Contents.json ├── tabBar_essence_icon.png ├── tabBar_essence_icon@2x.png ├── tabBar_essence_icon@3x.png ├── tabBar_friendTrends_click_icon.imageset ├── Contents.json ├── tabBar_friendTrends_click_icon.png ├── tabBar_friendTrends_click_icon@2x.png ├── tabBar_friendTrends_click_icon@3x.png ├── tabBar_friendTrends_icon.imageset ├── Contents.json ├── tabBar_friendTrends_icon.png ├── tabBar_friendTrends_icon@2x.png ├── tabBar_friendTrends_icon@3x.png ├── tabBar_me_click_icon.imageset ├── Contents.json ├── tabBar_me_click_icon.png ├── tabBar_me_click_icon@2x.png ├── tabBar_me_click_icon@3x.png ├── tabBar_me_icon.imageset ├── Contents.json ├── tabBar_me_icon.png ├── tabBar_me_icon@2x.png ├── tabBar_me_icon@3x.png ├── tabBar_new_click_icon.imageset ├── Contents.json ├── tabBar_new_click_icon.png ├── tabBar_new_click_icon@2x.png ├── tabBar_new_click_icon@3x.png ├── tabBar_new_icon.imageset ├── Contents.json ├── tabBar_new_icon.png ├── tabBar_new_icon@2x.png ├── tabBar_new_icon@3x.png ├── tabBar_publish_click_icon.imageset ├── Contents.json ├── tabBar_publish_click_icon.png ├── tabBar_publish_click_icon@2x.png ├── tabBar_publish_click_icon@3x.png ├── tabBar_publish_icon.imageset ├── Contents.json ├── tabBar_publish_icon.png ├── tabBar_publish_icon@2x.png ├── tabBar_publish_icon@3x.png ├── tabbar-light.imageset ├── Contents.json ├── tabbar-light.png ├── tabbar-light@2x.png ├── Tag ├── Contents.json ├── defaultUserIcon.imageset ├── Contents.json ├── defaultUserIcon.png ├── defaultUserIcon@2x.png ├── defaultUserIcon@3x.png ├── tagButtonBG.imageset ├── Contents.json ├── tagButtonBG.png ├── tagButtonBG@2x.png ├── tagButtonBGClick.imageset ├── Contents.json ├── tagButtonBGClick.png ├── tagButtonBGClick@2x.png ├── Class ├── .DS_Store ├── Advertisement(广告) ├── .DS_Store ├── Comment(评论) ├── .DS_Store ├── Controller ├── BSCommentViewController.h ├── BSCommentViewController.m ├── BSCommentViewController.xib ├── Model ├── BSComment.h ├── BSComment.m ├── BSUser.h ├── BSUser.m ├── View ├── BSCommentCell.h ├── BSCommentCell.m ├── BSCommentCell.xib ├── BSCommentHeaderFooterView.h ├── BSCommentHeaderFooterView.m ├── Controller ├── BSAdvertiseController.h ├── BSAdvertiseController.m ├── BSAdvertiseController.xib ├── Model ├── BSAdItem.h ├── BSAdItem.m ├── Comment(评论) ├── .DS_Store ├── Controller ├── BSCommentViewController.h ├── BSCommentViewController.m ├── BSCommentViewController.xib ├── Essence(精华) ├── .DS_Store ├── Controller ├── .DS_Store ├── BSAllViewController.h ├── BSAllViewController.m ├── BSEssenceController.h ├── BSEssenceController.m ├── BSPictureViewController.h ├── BSPictureViewController.m ├── BSSeeBigPicureViewController.h ├── BSSeeBigPicureViewController.m ├── BSSeeBigPicureViewController.xib ├── BSVideoViewController.h ├── BSVideoViewController.m ├── BSVoiceViewController.h ├── BSVoiceViewController.m ├── BSWordViewController.h ├── BSWordViewController.m ├── BStopicViewController.h ├── BStopicViewController.m ├── Model ├── BSTopicItem.h ├── BSTopicItem.m ├── View ├── BSTitleButton.h ├── BSTitleButton.m ├── BSTopicCell.h ├── BSTopicCell.m ├── BSTopicCell.xib ├── BSTopicPictureView.h ├── BSTopicPictureView.m ├── BSTopicPictureView.xib ├── BSTopicVideoView.h ├── BSTopicVideoView.m ├── BSTopicVideoView.xib ├── BSTopicVoiceView.h ├── BSTopicVoiceView.m ├── BSTopicVoiceView.xib ├── FriendTrends(关注) ├── Controller ├── BSFriendTrendsController.h ├── BSFriendTrendsController.m ├── BSFriendTrendsController.xib ├── BSLoginController.h ├── BSLoginController.m ├── BSLoginController.xib ├── BSRecommendFriendViewController.h ├── BSRecommendFriendViewController.m ├── BSRecommendFriendViewController.xib ├── Model ├── BSCategory.h ├── BSCategory.m ├── BSFollowUser.h ├── BSFollowUser.m ├── View ├── BSCategoryCell.h ├── BSCategoryCell.m ├── BSCategoryCell.xib ├── BSLoginRegisterTextField.h ├── BSLoginRegisterTextField.m ├── BSLoginVeiw.h ├── BSLoginVeiw.m ├── BSLoginVeiw.xib ├── BSThirdBitton.h ├── BSThirdBitton.m ├── BSThirdView.h ├── BSThirdView.m ├── BSThirdView.xib ├── BSUserCell.h ├── BSUserCell.m ├── BSUserCell.xib ├── Main(主要) ├── Controller ├── BSNavigationController.h ├── BSNavigationController.m ├── BSTabBarController.h ├── BSTabBarController.m ├── BSTopViewController.h ├── BSTopViewController.m ├── View ├── BSFooter.h ├── BSFooter.m ├── BSHeader.h ├── BSHeader.m ├── BSTabBar.h ├── BSTabBar.m ├── BSTopWindow.h ├── BSTopWindow.m ├── Me(我的) ├── Controller ├── BSMeController.h ├── BSMeController.m ├── BSMeController.storyboard ├── BSWebViewController.h ├── BSWebViewController.m ├── BSWebViewController.xib ├── Model ├── BSSquareItem.h ├── BSSquareItem.m ├── View ├── BSSquareCell.h ├── BSSquareCell.m ├── BSSquareCell.xib ├── New(新帖) ├── Controller ├── BSNewController.h ├── BSNewController.m ├── BSTableController.h ├── BSTableController.m ├── BSTagController.h ├── BSTagController.m ├── Model ├── BSTagItem.h ├── BSTagItem.m ├── View ├── BSTagCell.h ├── BSTagCell.m ├── BSTagCell.xib ├── Other(其他) ├── .DS_Store ├── AppDelegate.h ├── AppDelegate.m ├── BSGlobalConstant.h ├── BSGlobalConstant.m ├── BaiSi.pch ├── Category ├── .DS_Store ├── LYMTimeTool.h ├── LYMTimeTool.m ├── NSDate+MGExtension.h ├── NSDate+MGExtension.m ├── NSObject+FileManager.h ├── NSObject+FileManager.m ├── UIBarButtonItem+Extension.h ├── UIBarButtonItem+Extension.m ├── UIImage+MGImage.h ├── UIImage+MGImage.m ├── UIImageView+MGHeader.h ├── UIImageView+MGHeader.m ├── UITextField+LYMPlaceholderColor.h ├── UITextField+LYMPlaceholderColor.m ├── UITextField+placeholderColor.h ├── UITextField+placeholderColor.m ├── UIView+LYMExtension.h ├── UIView+LYMExtension.m ├── XMGExtensionConfig.h ├── XMGExtensionConfig.m ├── main.m ├── Publish(发布) ├── Controller ├── LYMAddTagViewController.h ├── LYMAddTagViewController.m ├── LYMPostWordViewController.h ├── LYMPostWordViewController.m ├── LYMPublishViewController.h ├── LYMPublishViewController.m ├── LYMPublishViewController.xib ├── View ├── LYMAddTagButton.h ├── LYMAddTagButton.m ├── LYMPostWordToolBar.h ├── LYMPostWordToolBar.m ├── LYMPostWordToolBar.xib ├── LYMPublishButton.h ├── LYMPublishButton.m ├── LYMTextField.h ├── LYMTextField.m ├── LYMTextView.h ├── LYMTextView.m ├── LYMTextViewWithLabel.h ├── LYMTextViewWithLabel.m ├── Seeting(设置) ├── .DS_Store ├── Controller ├── .DS_Store ├── BSSettingController.h ├── BSSettingController.m ├── Info.plist ├── com.plist ├── 启动图片 ├── .DS_Store ├── LaunchImage-568h@2x.png ├── LaunchImage-700-568h@2x.png ├── LaunchImage-700@2x.png ├── LaunchImage-800-667h@2x.png ├── LaunchImage-800-Portrait-736h@3x.png ├── LaunchImage.png ├── LaunchImage@2x.png ├── Podfile ├── Podfile.lock ├── Pods ├── AFNetworking ├── AFNetworking ├── AFHTTPSessionManager.h ├── AFHTTPSessionManager.m ├── AFNetworkReachabilityManager.h ├── AFNetworkReachabilityManager.m ├── AFNetworking.h ├── AFSecurityPolicy.h ├── AFSecurityPolicy.m ├── AFURLRequestSerialization.h ├── AFURLRequestSerialization.m ├── AFURLResponseSerialization.h ├── AFURLResponseSerialization.m ├── AFURLSessionManager.h ├── AFURLSessionManager.m ├── LICENSE ├── UIKit+AFNetworking ├── AFAutoPurgingImageCache.h ├── AFAutoPurgingImageCache.m ├── AFImageDownloader.h ├── AFImageDownloader.m ├── AFNetworkActivityIndicatorManager.h ├── AFNetworkActivityIndicatorManager.m ├── UIActivityIndicatorView+AFNetworking.h ├── UIActivityIndicatorView+AFNetworking.m ├── UIButton+AFNetworking.h ├── UIButton+AFNetworking.m ├── UIImage+AFNetworking.h ├── UIImageView+AFNetworking.h ├── UIImageView+AFNetworking.m ├── UIKit+AFNetworking.h ├── UIProgressView+AFNetworking.h ├── UIProgressView+AFNetworking.m ├── UIRefreshControl+AFNetworking.h ├── UIRefreshControl+AFNetworking.m ├── UIWebView+AFNetworking.h ├── UIWebView+AFNetworking.m ├── Headers ├── Private ├── AFNetworking ├── AFAutoPurgingImageCache.h ├── AFHTTPSessionManager.h ├── AFImageDownloader.h ├── AFNetworkActivityIndicatorManager.h ├── AFNetworkReachabilityManager.h ├── AFNetworking.h ├── AFSecurityPolicy.h ├── AFURLRequestSerialization.h ├── AFURLResponseSerialization.h ├── AFURLSessionManager.h ├── UIActivityIndicatorView+AFNetworking.h ├── UIButton+AFNetworking.h ├── UIImage+AFNetworking.h ├── UIImageView+AFNetworking.h ├── UIKit+AFNetworking.h ├── UIProgressView+AFNetworking.h ├── UIRefreshControl+AFNetworking.h ├── UIWebView+AFNetworking.h ├── MJExtension ├── MJDictionaryCache.h ├── MJExtension.h ├── MJExtensionConst.h ├── MJFoundation.h ├── MJProperty.h ├── MJPropertyKey.h ├── MJPropertyType.h ├── NSObject+MJClass.h ├── NSObject+MJCoding.h ├── NSObject+MJKeyValue.h ├── NSObject+MJProperty.h ├── NSString+MJExtension.h ├── MJRefresh ├── MJRefresh.h ├── MJRefreshAutoFooter.h ├── MJRefreshAutoGifFooter.h ├── MJRefreshAutoNormalFooter.h ├── MJRefreshAutoStateFooter.h ├── MJRefreshBackFooter.h ├── MJRefreshBackGifFooter.h ├── MJRefreshBackNormalFooter.h ├── MJRefreshBackStateFooter.h ├── MJRefreshComponent.h ├── MJRefreshConst.h ├── MJRefreshFooter.h ├── MJRefreshGifHeader.h ├── MJRefreshHeader.h ├── MJRefreshNormalHeader.h ├── MJRefreshStateHeader.h ├── UIScrollView+MJExtension.h ├── UIScrollView+MJRefresh.h ├── UIView+MJExtension.h ├── POP+MCAnimate ├── CALayer+MCShorthand.h ├── MCAnimationGroup.h ├── MCAnimationGroupInternal.h ├── MCAnimationProxy.h ├── MCBasicAnimation.h ├── MCBeginTime.h ├── MCDecayAnimation.h ├── MCProxy.h ├── MCShorthand.h ├── MCSpringAnimation.h ├── MCStopProxy.h ├── MCVelocityProxy.h ├── MCVelocityProxyInternal.h ├── NSArray+MCSequence.h ├── NSNumber+MCAdditions.h ├── POP+MCAnimate.h ├── UIView+MCShorthand.h ├── SDWebImage ├── NSData+ImageContentType.h ├── SDImageCache.h ├── SDWebImageCompat.h ├── SDWebImageDecoder.h ├── SDWebImageDownloader.h ├── SDWebImageDownloaderOperation.h ├── SDWebImageManager.h ├── SDWebImageOperation.h ├── SDWebImagePrefetcher.h ├── UIButton+WebCache.h ├── UIImage+GIF.h ├── UIImage+MultiFormat.h ├── UIImageView+HighlightedWebCache.h ├── UIImageView+WebCache.h ├── UIView+WebCacheOperation.h ├── SVProgressHUD ├── SVIndefiniteAnimatedView.h ├── SVProgressHUD.h ├── SVRadialGradientLayer.h ├── pop ├── FloatConversion.h ├── POP.h ├── POPAction.h ├── POPAnimatableProperty.h ├── POPAnimation.h ├── POPAnimationEvent.h ├── POPAnimationEventInternal.h ├── POPAnimationExtras.h ├── POPAnimationInternal.h ├── POPAnimationPrivate.h ├── POPAnimationRuntime.h ├── POPAnimationTracer.h ├── POPAnimationTracerInternal.h ├── POPAnimator.h ├── POPAnimatorPrivate.h ├── POPBasicAnimation.h ├── POPBasicAnimationInternal.h ├── POPCGUtils.h ├── POPCustomAnimation.h ├── POPDecayAnimation.h ├── POPDecayAnimationInternal.h ├── POPDefines.h ├── POPGeometry.h ├── POPLayerExtras.h ├── POPMath.h ├── POPPropertyAnimation.h ├── POPPropertyAnimationInternal.h ├── POPSpringAnimation.h ├── POPSpringAnimationInternal.h ├── POPSpringSolver.h ├── POPVector.h ├── TransformationMatrix.h ├── UnitBezier.h ├── Public ├── AFNetworking ├── AFAutoPurgingImageCache.h ├── AFHTTPSessionManager.h ├── AFImageDownloader.h ├── AFNetworkActivityIndicatorManager.h ├── AFNetworkReachabilityManager.h ├── AFNetworking.h ├── AFSecurityPolicy.h ├── AFURLRequestSerialization.h ├── AFURLResponseSerialization.h ├── AFURLSessionManager.h ├── UIActivityIndicatorView+AFNetworking.h ├── UIButton+AFNetworking.h ├── UIImage+AFNetworking.h ├── UIImageView+AFNetworking.h ├── UIKit+AFNetworking.h ├── UIProgressView+AFNetworking.h ├── UIRefreshControl+AFNetworking.h ├── UIWebView+AFNetworking.h ├── MJExtension ├── MJDictionaryCache.h ├── MJExtension.h ├── MJExtensionConst.h ├── MJFoundation.h ├── MJProperty.h ├── MJPropertyKey.h ├── MJPropertyType.h ├── NSObject+MJClass.h ├── NSObject+MJCoding.h ├── NSObject+MJKeyValue.h ├── NSObject+MJProperty.h ├── NSString+MJExtension.h ├── MJRefresh ├── MJRefresh.h ├── MJRefreshAutoFooter.h ├── MJRefreshAutoGifFooter.h ├── MJRefreshAutoNormalFooter.h ├── MJRefreshAutoStateFooter.h ├── MJRefreshBackFooter.h ├── MJRefreshBackGifFooter.h ├── MJRefreshBackNormalFooter.h ├── MJRefreshBackStateFooter.h ├── MJRefreshComponent.h ├── MJRefreshConst.h ├── MJRefreshFooter.h ├── MJRefreshGifHeader.h ├── MJRefreshHeader.h ├── MJRefreshNormalHeader.h ├── MJRefreshStateHeader.h ├── UIScrollView+MJExtension.h ├── UIScrollView+MJRefresh.h ├── UIView+MJExtension.h ├── POP+MCAnimate ├── CALayer+MCShorthand.h ├── MCAnimationGroup.h ├── MCAnimationGroupInternal.h ├── MCAnimationProxy.h ├── MCBasicAnimation.h ├── MCBeginTime.h ├── MCDecayAnimation.h ├── MCProxy.h ├── MCShorthand.h ├── MCSpringAnimation.h ├── MCStopProxy.h ├── MCVelocityProxy.h ├── MCVelocityProxyInternal.h ├── NSArray+MCSequence.h ├── NSNumber+MCAdditions.h ├── POP+MCAnimate.h ├── UIView+MCShorthand.h ├── SDWebImage ├── NSData+ImageContentType.h ├── SDImageCache.h ├── SDWebImageCompat.h ├── SDWebImageDecoder.h ├── SDWebImageDownloader.h ├── SDWebImageDownloaderOperation.h ├── SDWebImageManager.h ├── SDWebImageOperation.h ├── SDWebImagePrefetcher.h ├── UIButton+WebCache.h ├── UIImage+GIF.h ├── UIImage+MultiFormat.h ├── UIImageView+HighlightedWebCache.h ├── UIImageView+WebCache.h ├── UIView+WebCacheOperation.h ├── SVProgressHUD ├── SVIndefiniteAnimatedView.h ├── SVProgressHUD.h ├── SVRadialGradientLayer.h ├── pop ├── POP.h ├── POPAnimatableProperty.h ├── POPAnimation.h ├── POPAnimationEvent.h ├── POPAnimationExtras.h ├── POPAnimationTracer.h ├── POPAnimator.h ├── POPBasicAnimation.h ├── POPCustomAnimation.h ├── POPDecayAnimation.h ├── POPDefines.h ├── POPGeometry.h ├── POPLayerExtras.h ├── POPPropertyAnimation.h ├── POPSpringAnimation.h ├── MJExtension ├── LICENSE ├── MJExtension ├── MJDictionaryCache.h ├── MJDictionaryCache.m ├── MJExtension.h ├── MJExtensionConst.h ├── MJExtensionConst.m ├── MJFoundation.h ├── MJFoundation.m ├── MJProperty.h ├── MJProperty.m ├── MJPropertyKey.h ├── MJPropertyKey.m ├── MJPropertyType.h ├── MJPropertyType.m ├── NSObject+MJClass.h ├── NSObject+MJClass.m ├── NSObject+MJCoding.h ├── NSObject+MJCoding.m ├── NSObject+MJKeyValue.h ├── NSObject+MJKeyValue.m ├── NSObject+MJProperty.h ├── NSObject+MJProperty.m ├── NSString+MJExtension.h ├── NSString+MJExtension.m ├── MJRefresh ├── LICENSE ├── MJRefresh ├── Base ├── MJRefreshAutoFooter.h ├── MJRefreshAutoFooter.m ├── MJRefreshBackFooter.h ├── MJRefreshBackFooter.m ├── MJRefreshComponent.h ├── MJRefreshComponent.m ├── MJRefreshFooter.h ├── MJRefreshFooter.m ├── MJRefreshHeader.h ├── MJRefreshHeader.m ├── Custom ├── Footer ├── Auto ├── MJRefreshAutoGifFooter.h ├── MJRefreshAutoGifFooter.m ├── MJRefreshAutoNormalFooter.h ├── MJRefreshAutoNormalFooter.m ├── MJRefreshAutoStateFooter.h ├── MJRefreshAutoStateFooter.m ├── Back ├── MJRefreshBackGifFooter.h ├── MJRefreshBackGifFooter.m ├── MJRefreshBackNormalFooter.h ├── MJRefreshBackNormalFooter.m ├── MJRefreshBackStateFooter.h ├── MJRefreshBackStateFooter.m ├── Header ├── MJRefreshGifHeader.h ├── MJRefreshGifHeader.m ├── MJRefreshNormalHeader.h ├── MJRefreshNormalHeader.m ├── MJRefreshStateHeader.h ├── MJRefreshStateHeader.m ├── MJRefresh.bundle ├── arrow@2x.png ├── MJRefresh.h ├── MJRefreshConst.h ├── MJRefreshConst.m ├── UIScrollView+MJExtension.h ├── UIScrollView+MJExtension.m ├── UIScrollView+MJRefresh.h ├── UIScrollView+MJRefresh.m ├── UIView+MJExtension.h ├── UIView+MJExtension.m ├── Manifest.lock ├── POP+MCAnimate ├── LICENSE ├── POP+MCAnimate ├── Animations ├── MCAnimationProxy.h ├── MCAnimationProxy.m ├── MCBasicAnimation.h ├── MCBasicAnimation.m ├── MCBeginTime.h ├── MCBeginTime.m ├── MCDecayAnimation.h ├── MCDecayAnimation.m ├── MCSpringAnimation.h ├── MCSpringAnimation.m ├── MCStopProxy.h ├── MCStopProxy.m ├── NSArray+MCSequence.h ├── NSArray+MCSequence.m ├── Group ├── MCAnimationGroup.h ├── MCAnimationGroup.m ├── MCAnimationGroupInternal.h ├── MCAnimationGroupInternal.m ├── Internal ├── MCProxy.h ├── MCProxy.m ├── NSNumber+MCAdditions.h ├── NSNumber+MCAdditions.m ├── POP+MCAnimate.h ├── Shorthand ├── CALayer+MCShorthand.h ├── CALayer+MCShorthand.m ├── MCShorthand.h ├── UIView+MCShorthand.h ├── UIView+MCShorthand.m ├── Velocity ├── MCVelocityProxy.h ├── MCVelocityProxy.m ├── MCVelocityProxyInternal.h ├── Pods.xcodeproj ├── project.pbxproj ├── SDWebImage ├── LICENSE ├── SDWebImage ├── NSData+ImageContentType.h ├── NSData+ImageContentType.m ├── SDImageCache.h ├── SDImageCache.m ├── SDWebImageCompat.h ├── SDWebImageCompat.m ├── SDWebImageDecoder.h ├── SDWebImageDecoder.m ├── SDWebImageDownloader.h ├── SDWebImageDownloader.m ├── SDWebImageDownloaderOperation.h ├── SDWebImageDownloaderOperation.m ├── SDWebImageManager.h ├── SDWebImageManager.m ├── SDWebImageOperation.h ├── SDWebImagePrefetcher.h ├── SDWebImagePrefetcher.m ├── UIButton+WebCache.h ├── UIButton+WebCache.m ├── UIImage+GIF.h ├── UIImage+GIF.m ├── UIImage+MultiFormat.h ├── UIImage+MultiFormat.m ├── UIImageView+HighlightedWebCache.h ├── UIImageView+HighlightedWebCache.m ├── UIImageView+WebCache.h ├── UIImageView+WebCache.m ├── UIView+WebCacheOperation.h ├── UIView+WebCacheOperation.m ├── SVProgressHUD ├── LICENSE.txt ├── SVProgressHUD ├── SVIndefiniteAnimatedView.h ├── SVIndefiniteAnimatedView.m ├── SVProgressHUD.bundle ├── angle-mask.png ├── angle-mask@2x.png ├── angle-mask@3x.png ├── error.png ├── error@2x.png ├── error@3x.png ├── info.png ├── info@2x.png ├── info@3x.png ├── success.png ├── success@2x.png ├── success@3x.png ├── SVProgressHUD.h ├── SVProgressHUD.m ├── SVRadialGradientLayer.h ├── SVRadialGradientLayer.m ├── Target Support Files ├── AFNetworking ├── AFNetworking-dummy.m ├── AFNetworking-prefix.pch ├── AFNetworking.xcconfig ├── MJExtension ├── MJExtension-dummy.m ├── MJExtension-prefix.pch ├── MJExtension.xcconfig ├── MJRefresh ├── MJRefresh-dummy.m ├── MJRefresh-prefix.pch ├── MJRefresh.xcconfig ├── POP+MCAnimate ├── POP+MCAnimate-dummy.m ├── POP+MCAnimate-prefix.pch ├── POP+MCAnimate.xcconfig ├── Pods ├── Pods-acknowledgements.markdown ├── Pods-acknowledgements.plist ├── Pods-dummy.m ├── Pods-frameworks.sh ├── Pods-resources.sh ├── Pods.debug.xcconfig ├── Pods.realease.xcconfig ├── Pods.release.xcconfig ├── SDWebImage ├── SDWebImage-dummy.m ├── SDWebImage-prefix.pch ├── SDWebImage.xcconfig ├── SVProgressHUD ├── SVProgressHUD-dummy.m ├── SVProgressHUD-prefix.pch ├── SVProgressHUD.xcconfig ├── pop ├── pop-dummy.m ├── pop-prefix.pch ├── pop.xcconfig ├── pop ├── LICENSE ├── pop ├── POP.h ├── POPAction.h ├── POPAnimatableProperty.h ├── POPAnimatableProperty.mm ├── POPAnimation.h ├── POPAnimation.mm ├── POPAnimationEvent.h ├── POPAnimationEvent.mm ├── POPAnimationEventInternal.h ├── POPAnimationExtras.h ├── POPAnimationExtras.mm ├── POPAnimationInternal.h ├── POPAnimationPrivate.h ├── POPAnimationRuntime.h ├── POPAnimationRuntime.mm ├── POPAnimationTracer.h ├── POPAnimationTracer.mm ├── POPAnimationTracerInternal.h ├── POPAnimator.h ├── POPAnimator.mm ├── POPAnimatorPrivate.h ├── POPBasicAnimation.h ├── POPBasicAnimation.mm ├── POPBasicAnimationInternal.h ├── POPCGUtils.h ├── POPCGUtils.mm ├── POPCustomAnimation.h ├── POPCustomAnimation.mm ├── POPDecayAnimation.h ├── POPDecayAnimation.mm ├── POPDecayAnimationInternal.h ├── POPDefines.h ├── POPGeometry.h ├── POPGeometry.mm ├── POPLayerExtras.h ├── POPLayerExtras.mm ├── POPMath.h ├── POPMath.mm ├── POPPropertyAnimation.h ├── POPPropertyAnimation.mm ├── POPPropertyAnimationInternal.h ├── POPSpringAnimation.h ├── POPSpringAnimation.mm ├── POPSpringAnimationInternal.h ├── POPSpringSolver.h ├── POPVector.h ├── POPVector.mm ├── WebCore ├── FloatConversion.h ├── TransformationMatrix.cpp ├── TransformationMatrix.h ├── UnitBezier.h ├── ad.plist ├── readme.txt标签:Z5yUlJ1x,imageset,百思,2x,json,源码,png,Contents,icon From: https://www.cnblogs.com/csbysj/p/18598965