从另一个类创建超级视图的子视图不起作用

Posted

技术标签:

【中文标题】从另一个类创建超级视图的子视图不起作用【英文标题】:Creating subview for superview from another class is not working 【发布时间】:2012-09-11 05:53:02 【问题描述】:

您好,我是 ios 新手。

我有 2 个类,一个是父类,另一个是子类。我在父类中有一种方法将创建一个 UIScrollView。我试图通过创建父类的对象从子类调用该父类方法。当我从子类调用时调用该方法,但如果我通过使用 self 在父类中调用相同的方法,它不会创建 UIScrollView,它会创建 UIScrollView。

我不知道我在哪里制造问题。请指导我

//父类中scrollview的创建方法//

  -(void)creatingScroll

UIScrollView * propertyScrl = [[UIScrollView alloc]initWithFrame:CGRectMake(10, 200, 320, 160)];
propertyScrl.scrollEnabled = YES;
propertyScrl.showsHorizontalScrollIndicator = YES;
propertyScrl.contentSize = CGSizeMake(600, 60);
propertyScrl.backgroundColor = [UIColor redColor];
[self.view addSubview:propertyScrl];


//从子类调用上面的方法//

    ParentViewController *vc = [[ParentViewController alloc]init];

    [vc creatingScroll];

【问题讨论】:

【参考方案1】:

你正在创建另一个 ParentViewController 对象并在该对象上调用 creatingScroll 方法,这不是推送到你的 viewController 上的视图。

你可以通过协议和委托调用父类方法。

请参考http://mobiledevelopertips.com/objective-c/the-basics-of-protocols-and-delegates.html

希望对您有所帮助。快乐编码:)

【讨论】:

感谢您的回复,我会努力的。【参考方案2】:

既然你已经继承了subclasssuperclass的所有方法,那么你只需在子类中调用[self creatingScroll]即可。

【讨论】:

感谢您的回复。但是子类已经继承自另一个超类。【参考方案3】:
  -(UIScrollView *)creatingScroll

UIScrollView * propertyScrl = [[UIScrollView alloc]initWithFrame:CGRectMake(10, 200, 320, 160)];
propertyScrl.scrollEnabled = YES;
propertyScrl.showsHorizontalScrollIndicator = YES;
propertyScrl.contentSize = CGSizeMake(600, 60);
propertyScrl.backgroundColor = [UIColor redColor];
 //[self.view addSubview:propertyScrl];  // don't add here

return propertyScrl;



//calling above method from child class or any class//
probably in viewDidLoad of child class 

 ParentViewController * vc = [[ParentViewController alloc]init];

  UIScrollView * scrollView = (UIScrollVIew * ) [vc creatingScroll];

    [self.view addSubView:scrollView];

【讨论】:

以上是关于从另一个类创建超级视图的子视图不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如果从另一个类调用 removeFromSuperview 将不起作用

在 TextView 上点击 Gesture,其超级视图在 iOS 11 中不起作用

将 CGRect 从视图转换为超级视图不起作用

UIView addSubview 自动布局不起作用

UIButton 作为 MKAnnotationView 的子视图不起作用

我的子视图中的 UIButton 不起作用