Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将自定义视图作为子视图添加到uiscrollview后将消失_Ios_Objective C_Uikit - Fatal编程技术网

Ios 将自定义视图作为子视图添加到uiscrollview后将消失

Ios 将自定义视图作为子视图添加到uiscrollview后将消失,ios,objective-c,uikit,Ios,Objective C,Uikit,我有一个从UIView继承的自定义视图BNRHyponsisView。当我添加到滚动视图时,它就消失了,显示了背景色 但是添加到其中的UITextField显示得很好,滚动也很好! 引用使用了强引用,我还是搜索了一下,找不到答案 - (void)loadView { self.bhv = [[BNRHyponsisView alloc] init]; CGRect frame = CGRectMake(40, 70, 240, 30); UITextField *tf

我有一个从UIView继承的自定义视图BNRHyponsisView。当我添加到滚动视图时,它就消失了,显示了背景色

但是添加到其中的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;
}

你错过了定格,伙计

self.bhv = [[BNRHyponsisView alloc] init]initWithFrame:CGRectMake(0, 0, 200, 300);

self.bhv.backgroundColor = [UIColor orangeColor];
但为什么会显示UITextField


BNRHyponsisView帧将为0,0,0,0CGRectZero。但它仍然存在,但肉眼看不到。非常小,因为0。但是默认情况下,如果以编程方式创建子视图,则任何UIView都不会剪切子视图。这就是它显示UITextField的原因。

尝试同时设置帧和背景色

  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];

希望这能帮助您调试您的问题。

self.bhv的框架是什么?它的背景色是什么?窗框,默认的。如果我将它设置为没有滚动的视图,它会工作得很好,问题是当我将它添加到子视图时,它就消失了。好的。您是否尝试过此[self.view addSubview:usv];?它调用loadView方法的次数太多,直到它崩溃,我尝试了self.view=self.hbv;然后你的线它调用一次,但也崩溃。使全局对象的UIScrollView和检查否,仍然是相同的问题,背景仍然是白色。更改颜色self.bhv.backgroundColor=[UIColor orangeColor];在VIEWDIDAPPARTHE上,背景为蓝色,但仍然没有BNRHyponsisView:/。您从UIView继承BNRHyponsisView类有什么具体原因吗?尝试直接用UIView替换它。