请参阅此对类似问题的回答。
我认为这就是您需要解决此问题的方式,将固定标题放在数据的单独子视图中。然后将固定子视图的框架设置为scrollViewDidScroll:
在滚动视图的顶部(或侧面)创建固定标题的外观。
例如:将header subview的初始帧设置为(0, 0, width, height)
,然后在scrollViewDidScroll:
设置帧为(0, contentOffset.y, width, height)
。
编辑:这是一个例子。在下面的屏幕截图中,我在UIScrollView
. 然后在scrollViewDidScroll:
我设置子视图的框架以分别将它们固定在顶部、左侧和左上角。
视图控制器.h:
@interface ViewController : UIViewController <UIScrollViewDelegate>
@property (nonatomic, weak) IBOutlet UIScrollView * theScrollView;
@property (nonatomic, weak) IBOutlet UIImageView * topView;
@property (nonatomic, weak) IBOutlet UIImageView * leftView;
@property (nonatomic, weak) IBOutlet UIView * topLeftView;
@end
视图控制器.m:
#import "ViewController.h"
@implementation ViewController
@synthesize theScrollView, topView, leftView, topLeftView;
- (void)viewDidLoad
{
[super viewDidLoad];
self.theScrollView.delegate = self;
}
- (void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.theScrollView.contentSize = CGSizeMake(502, 401);
}
#pragma mark UIScrollViewDelegate methods
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGRect tempFrame = self.topView.frame;
tempFrame.origin.y = scrollView.contentOffset.y;
self.topView.frame = tempFrame;
tempFrame = self.leftView.frame;
tempFrame.origin.x = scrollView.contentOffset.x;
self.leftView.frame = tempFrame;
tempFrame = self.topLeftView.frame;
tempFrame.origin.x = scrollView.contentOffset.x;
tempFrame.origin.y = scrollView.contentOffset.y;
self.topLeftView.frame = tempFrame;
}
@end
这就是它的全部!希望这对您有所帮助。