- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用一个通用的 UIView 覆盖了(这是一个真实的词吗?无论如何)我的 UITableView header 以在整个应用程序中使用。没什么大不了的,只是纯色背景、预选字体、字体大小、字体粗细、字体颜色等。这就是全部。事实上这里是 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"];
}
这里没有什么奇怪或独特的。
这很有效,它显示得很好没有问题。当您滚动表格 View 时会发生什么。当您向上滚动时,部分标题向下移动并停留在那里。速度越快,部分标题向下移动的越多并停留在那里,直到您回到表格的顶部。这个应用程序有大约 25 个单独的 TableView ,这个标题将被分开,我真的想尽快解决这个渲染错误。
我想张贴截图,但由于严格的保密协议(protocol),我不能这样做,否则有被解雇的风险。但这里有一些东西可以形象化问题。我模糊了所有的文字,抱歉我别无选择:\
黑色条是节标题,图像的顶部是 UITableView 的顶部。请注意该部分标题向下的程度,而不是它应该在的位置? (顶部,就像普通的节标题一样)。我只是不确定在这里做什么
最佳答案
我认为你的问题出在这里:
-(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];
}
在 layoutSubviews 中添加 subview 很奇怪。为什么不在initWithFrame中做,以免混淆Cocoa的渲染代码?
编辑:这也使您无需保存所有这些成员变量、声明所有这些属性并合成它们:)
编辑 2:当您初始化 UILabel
时,您也应该使用 self.bounds
而不是 self.frame
作为引用。
关于ios - UITableView Header Override (UIView) 滚动行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046037/
有没有在OpenJDK 1.7.0_45中派生类重写基类方法,但没有@Override注解,运行时派生类实例调用基类方法的情况? class Base { public f() { }
我正在尝试在 C++ 中练习 OOP,但我遇到了有关覆盖函数的问题。在我的 Shape2D 和 Shape3D 类中,我有在 Square 和 Sphere 类(分别为 ShowArea() 和 Sh
我想控制值在槽中的保存方式以及读取槽时返回的内容。这是我的类定义: (defclass object () ((name :accessor name-access :initf
我正在尝试在 C++ 中练习 OOP,但我遇到了有关覆盖函数的问题。在我的 Shape2D 和 Shape3D 类中,我有在 Square 和 Sphere 类(分别为 ShowArea() 和 Sh
我读了section在 Scala 编程中,引入了抽象重写,但我仍然对这些修饰符的连接到底意味着什么感到困惑。使用这些修饰符的代码片段粘贴在下面: trait Doubling extends Int
阅读Javadoc对于 @Override 注释,我遇到了以下规则: If a method is annotated with thisannotation type compilers are r
我正在基于 BEP20Token 模板 (https://github.com/binance-chain/bsc-genesis-contract/blob/master/contracts/bep
关于下面提到的 3 份契约(Contract): 1) Whenever hashCode() is invoked on the same object more than once during
在 C# 中,override 默认启用,那么,是否不需要显式在基类中将方法声明为可覆盖?如果是的话 Overridable 仅限于 VB.NET 还是在 C# 中也是必需的? 因此可以覆盖哪些类型的
以下代码在 public void onClick 行生成此错误消息。 Multiple markers at this line - implements android.view.View.OnC
当我在运行 IIS 的服务器 2012R2 上托管它时,我能够使用 Autorest 和我的 api 生成代码 但是,当我尝试使用 localhost url 运行它时,我收到一条无法读取的消息。 我
代码如下。 IDE 的代码没问题,但 gradle 拒绝构建,并表示: TextAdapter is not abstract and does not override abstract metho
这个问题已经有答案了: Best practice for overriding classes / properties in ExtJS? (3 个回答) 已关闭 8 年前。 这两个覆盖有什么区别
我今天将 xcode 更新为 7。更新后,我正在处理的项目出现警告“覆盖成员函数但未标记为‘覆盖’”。由于我们的项目将“踩踏警告为错误”设置为true。我遇到了很多错误。 我仔细检查了“Other L
我试图将 Apple 的 ARKit 示例应用程序集成到我的应用程序中。由于 ARKit 只是一个附加功能,所以我需要支持较低版本的 iOS。我在所有 ARKit 示例应用程序类中添加了 @avail
我覆盖了类的 Equals() 来比较 Guid 类型的 ID 值。 然后 Visual Studio 警告: ... overrides Object.Equals(object o) but do
我正在尝试用 Java 中的 Runnable 对象创建一个基本线程。下面是我的代码: import java.lang.Thread; import java.lang.Runnable; publ
我有一个函数: int function(int a, int b = 1, int c = 2){ return a+b+c; } 我想将“c”变量的值设置为3,但不想设置“b”的值 在像
我正在尝试了解GAS的.code16行为。 在手册中,对于16位部分,对于32位操作数或指令,似乎会为指令编码生成一个66H操作数替代前缀。这是否意味着 .code16 movw %eax, %ebx
我正在尝试创建一个 JFrame,向 JFrame 添加一个 JLabel(image),但这需要我抛出 IOException,这会弄乱我的 main 方法中的 run() 。 谁能告诉我如何抛出异
我是一名优秀的程序员,十分优秀!