我有一个自定义视图" BNRHyponsisView"继承自UIView。当我添加到滚动视图时,它会消失,向我显示背景颜色。
但添加到它的UITextField显示得很好,滚动也正常工作! 使用的参考文献很强,无论如何我都搜索过,无法找到答案!
- (void)loadView {
self.bhv = [[BNRHyponsisView alloc] init];
CGRect frame = CGRectMake(40, 70, 240, 30);
UITextField *tf = [[UITextField alloc] initWithFrame:frame];
tf.borderStyle = UITextBorderStyleRoundedRect;
tf.placeholder = @"Hypnotize me!";
tf.returnKeyType = UIReturnKeyDone;
tf.autocapitalizationType = UITextAutocorrectionTypeDefault;
tf.autocorrectionType = YES;
tf.enablesReturnKeyAutomatically = YES;
tf.delegate = self;
[self.bhv addSubview:tf];
UIScrollView *usv = [[UIScrollView alloc] init];
usv.delegate = self;
usv.pagingEnabled = NO;
usv.minimumZoomScale = 1.0;
usv.maximumZoomScale = 2.0;
usv.contentSize = self.bhv.bounds.size;
[usv addSubview:self.bhv];
self.view = usv;
}
答案 0 :(得分:0)
你错过了设置框架dude。
self.bhv = [[BNRHyponsisView alloc] init]initWithFrame:CGRectMake(0, 0, 200, 300);
self.bhv.backgroundColor = [UIColor orangeColor];
但为何显示UITextField?
BNRHyponsisView框架将是0,0,0,0(CGRectZero)。但它仍然在那里,但你的眼睛看不到。很小(因为0)。但是默认情况下,如果以编程方式创建子视图,任何UIView都不会剪辑(clipsToBounds)子视图。这就是它显示UITextField的原因。
答案 1 :(得分:0)
尝试为两者设置框架和背景颜色
1. self.bhv i.e UIView
self.bhv = [[BNRHyponsisView alloc] init]initWithFrame:CGRectMake(0, 0, 300, 350);
self.bhv.backgroundColor = [UIColor redcolor];
2. usv i.e UIScrollView
usv = [[UIScrollView alloc] init]initWithFrame:CGRectMake(0, 0, 400, 400);
usv.backgroundColor = [UIColor bluecolor];
希望这可以帮助您调试问题。