V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
racechao
V2EX  ›  iDev

求老司机指点迷津,类似微博个人主业在 tableView 切换数不同据源的时候是如何保持 contentOffset 不变的?

  •  
  •   racechao ·
    alfredcc · Aug 23, 2016 · 4076 views
    This topic created in 3543 days ago, the information mentioned may be changed or developed.
    最近在做一个模仿微博的个人中心的界面,界面包括交互效果大致和微博出不多,需要有下拉有图片变大的功能。参照了几种实现方法基本都是在 tableView 上加一个 ImageView 来实现。那么问题来了,当 [主页] - [微博] - [相册] 这个 SectionHeader 悬浮在顶部的时候,切换这三个 Tab ,是如果保持 tableView 的 contentOffset 位置不变的呢?
    求老司机指点迷津
    效果图如下:




    19 replies    2016-09-16 13:01:31 +08:00
    xi_lin
        1
    xi_lin  
       Aug 23, 2016
    直接放三个独立 subViewController
    codeisjobs
        2
    codeisjobs  
       Aug 23, 2016 via iPhone
    你的意思是当点击按钮时,界面不是从最上面出现的,而是从之前界面的位置出现的?那样的话你最好做个 collectionview 把 3 个界面装起来,这样只有第一次点击的时候是从头开始,之后就是你划到了哪里,再进来还是那个位置,
    kitalphaj
        3
    kitalphaj  
       Aug 23, 2016
    一楼的意思是你直接用三个独立的 ViewController ,就不会每次切换 Tab 重新刷新内容,状态都会一直保存着。
    loveuqian
        4
    loveuqian  
       Aug 23, 2016 via iPhone
    这个界面真不好做
    我目前是切换 view
    因为我还有 collectionView
    我也想请教一下比较好的方法
    racechao
        5
    racechao  
    OP
       Aug 23, 2016
    @xi_lin @codeisjobs @loveuqian @kitalphaj 谢谢各位解惑。
    因为需要有视察的效果,目前看了看只能是用 collectionview 把 3 个界面通过 page 的方式装起来了,并且只在第一次的加载 page 的时候将 collectionView 回到一个初始的 offset 。
    racechao
        6
    racechao  
    OP
       Aug 23, 2016
    视差 parallax 🙄
    racechao
        7
    racechao  
    OP
       Aug 23, 2016
    这个界面真尼玛复杂...
    kitalphaj
        8
    kitalphaj  
       Aug 24, 2016
    @racechao 哪种视差效果?举个例子呗。 https://github.com/xmartlabs/XLPagerTabStrip 这个效果不是你要的么?
    racechao
        9
    racechao  
    OP
       Aug 24, 2016
    @kitalphaj 不一样,视差效果是指 https://github.com/MichMich/ParallaxTableView
    这种 Tab 的切换是好做的,但这两种效果都有就比较复杂了。
    programdog
        10
    programdog  
       Aug 24, 2016
    一楼正解
    ma125125t
        11
    ma125125t  
       Aug 24, 2016
    很复杂吗..三个表,点击 tab 后设置每张表的 hidden...
    amon
        12
    amon  
       Aug 24, 2016
    用 Reveal 看下微博的视图结构就可以了。
    racechao
        13
    racechao  
    OP
       Aug 24, 2016
    @ma125125t 要是这么简单就好了。
    ma125125t
        14
    ma125125t  
       Aug 24, 2016
    @racechao 有什么问题吗?
    racechao
        15
    racechao  
    OP
       Aug 24, 2016
    首先整个界面是一个 Tableview ,上面封面图,如国你滑倒一半,这个时候封面图有一般被遮挡,点击另外一个 tab 的时候 contentOffset 并不是当前的值,如果强制设置界面会有抖动。
    xi_lin
        16
    xi_lin  
       Aug 26, 2016
    不用整个界面用一个 TableView 啊。视差效果单独监听 contentOffset 做呗。
    我感觉你的需求可以直接用这个库
    https://github.com/wangmchn/WMPageController/
    racechao
        17
    racechao  
    OP
       Aug 31, 2016
    @xi_lin 可以这样做,谢谢
    racechao
        18
    racechao  
    OP
       Aug 31, 2016
    最后自己重新写过了,将原先的 tableview 换成 scrollView 下放三个独立的 viewController
    lvlingsheng
        19
    lvlingsheng  
       Sep 16, 2016
    应该就是一个类似 SegmentedController ,下面用一个 container 带上三个 view ,每次切换的时候判断整个的 vc 中存不存在需要的 container 里的 VC 如果存在就直接用,不存在就新建。
    这样的就不会重载
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5755 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 08:38 · PVG 16:38 · LAX 01:38 · JFK 04:38
    ♥ Do have faith in what you're doing.