在我的应用中,我正在为UITextView添加背景。但是当文本视图向下滚动时,图像与文本一起出现,新文本行的背景看起来是白色的。有没有一种简单的方法来应对它? 这是我的代码:
textView = [ [UITextView alloc] initWithFrame: CGRectMake(10, 100, 270, 130)];
UIImageView *imgView = [ [UIImageView alloc]initWithFrame: CGRectMake(0, 0, 270, 130)];
imgView.image = [UIImage imageNamed: @"background.png"];
[textView addSubview: imgView];
[textView sendSubviewToBack: imgView];
[imgView release];
textView.opaque = YES;
textView.editable = YES;
textView.font = [UIFont systemFontOfSize: 12];
textView.textColor = [UIColor colorWithRed: 10.0f/255.0f green: 10.0f/255.0f blue: 10.0f/255.0f alpha: 1.0f];
textView.autocapitalizationType = UITextAutocapitalizationTypeNone;
textView.delegate = self;
[mainScrollView addSubview: textView];
我希望背景保持静态,文本在其上滚动。
答案 0 :(得分:2)
如果您希望背景保持静态并且文本在其上滚动,只需将UIImageView添加到您将UIScrollView添加到(具有相同尺寸等)的同一视图中。 类似的东西:
UIImageView *imgView = [ [UIImageView alloc]initWithFrame: CGRectMake(0, 0, 270, 130)];
imgView.image = [UIImage imageNamed: @"background.png"];
[self addSubView:imgView];
[imgView release];
textView = [ [UITextView alloc] initWithFrame: CGRectMake(10, 100, 270, 130)];
textView.opaque = YES;
textView.editable = YES;
textView.font = [UIFont systemFontOfSize: 12];
textView.textColor = [UIColor colorWithRed: 10.0f/255.0f green: 10.0f/255.0f blue: 10.0f/255.0f alpha: 1.0f];
textView.autocapitalizationType = UITextAutocapitalizationTypeNone;
textView.delegate = self;
// Make the background of the textView transparent
textView.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 0.0 alpha: 0.0];
[mainScrollView addSubview: textView];
我假设这个代码是在UIView上运行的,所以我要添加UIImageView self。如果您是从UIViewController执行此操作,则可能需要将其更改为[self.view addSubView:mainScrollView]
。
答案 1 :(得分:0)
谢谢pgb。
这段代码最终适用于我:
UIImageView *imgView = [ [UIImageView alloc]initWithFrame: CGRectMake(10, 100, 270, 130)];
imgView.image = [UIImage imageNamed: @"background.png"];
[mainScrollView addSubview: imgView];
[mainScrollView sendSubviewToBack: imgView];
[imgView release];
textView = [ [UITextView alloc] initWithFrame: CGRectMake(10, 100, 270, 130)];
textView.opaque = YES;
textView.editable = YES;
textView.font = [UIFont systemFontOfSize: 12];
textView.textColor = [UIColor colorWithRed: 10.0f/255.0f green: 10.0f/255.0f blue: 10.0f/255.0f alpha: 1.0f];
textView.autocapitalizationType = UITextAutocapitalizationTypeNone;
textView.delegate = self;
// Make the background of the textView transparent
textView.backgroundColor = [UIColor colorWithRed: 0.0 green: 0.0 blue: 0.0 alpha: 0.0];
[mainScrollView addSubview: textView];