我用一个通用的 UIView 覆盖(这是一个真实的词吗?无论如何)我的 UITableView 标头,以便在整个应用程序中使用。它没什么大不了的,只是一个坚实的背景,预先选择的字体,字体大小,字体粗细,字体颜色等。这就是它的全部。事实上继承人的 UIView
TableSectionView.h
#import <UIKit/UIKit.h>
@interface TableSectionView : UIView {
NSString *textLabel;
UIColor *textColor;
UIColor *backgroundColor;
BOOL bold;
NSString *textFont;
NSInteger textSize;
}
@property (nonatomic, retain) NSString *textLabel, *textFont;
@property (nonatomic, retain) UIColor *textColor, *backgroundColor;
@property (nonatomic) BOOL bold;
@property (nonatomic) NSInteger textSize;
- (id)initWithFrame:(CGRect)frame andText:(NSString*)text;
@end
TableSectionView.m
#import "TableSectionView.h"
@implementation TableSectionView
@synthesize textLabel, backgroundColor, textColor, bold, textFont, textSize;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(id)initWithFrame:(CGRect)frame andText:(NSString *)text {
self = [self initWithFrame:frame];
if(self) {
textLabel = text;
textFont = @"Arial-BoldMT";
textSize = 16;
textColor = [[UIColor alloc] initWithRed:1 green:1 blue:1 alpha:1];
backgroundColor = [[UIColor alloc] initWithRed:0 green:0 blue:0 alpha:0.8];
}
return self;
}
-(void)layoutSubviews {
[super layoutSubviews];
UILabel *title = [[UILabel alloc] initWithFrame:self.frame];
title.text = [NSString stringWithFormat:@" %@", textLabel];
title.font = [UIFont fontWithName:textFont size:textSize];
title.textColor = textColor;
title.backgroundColor = backgroundColor;
[self addSubview:title];
}
@end
以及我如何在文件中使用它:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
return [[TableSectionView alloc] initWithFrame:CGRectZero andText:@"Table Section Title"];
}
这里没有什么奇怪或独特的。
这很有效,它显示得很好。当您滚动表格视图时会发生什么。当您向上滚动时,部分标题会向下移动并停留在那里。速度越快,部分标题越向下移动并停留在那里,直到您回到表格顶部。这个应用程序有大约 25 个单独的表视图,这个标题是分开的,我真的很想尽快解决这个渲染错误。
我想发布一个截图,但由于严格的保密协议,我不能在没有被解雇的风险的情况下发布。但这里有一些东西可以可视化这个问题。我已经把所有的文字都弄模糊了,抱歉我别无选择:\
黑条是section header,图片顶部是UITableView的顶部。请注意该部分标题下降了多少,而不是它应该在哪里?(顶部,如普通部分标题)。我只是不确定在这里做什么