gpt4 book ai didi

ios - 使用实例方法以编程方式添加 subview

转载 作者:行者123 更新时间:2023-11-28 18:59:02 25 4
gpt4 key购买 nike

我试图通过使用在我的 ThirdClass : NSObject 类中声明的方法以编程方式将 subview 添加到我的 ViewController : UIViewController 。这是我的代码:

在我做的 ViewController.m 文件中:

- (void)viewDidLoad {
[super viewDidLoad];
ThirdClass *instanceOfThirdClass = [[ThirdClass alloc] init];
[instanceOfThirdClass createView];
}

然后在我的 ThirdClass.m 中声明实例方法:

-(void)createView{
NSLog(@"enter create app");
UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(50, 0, 320, 100)];
[myView setBackgroundColor:[UIColor redColor]];
ViewController *instanceOfViewController = [[ViewController alloc]init];
[instanceOfViewController.view addSubview:myView];

}

所以问题显然是我试图将创建的 View 添加到类实例中,正确的方法是下面@gary-riches 发布的方法,

最佳答案

您将创建的 View 附加到一个新的实例化 View Controller ,但您显示的 View 是属于 ViewController.m 的 View 。您需要将 View 添加到 ViewController.m 的 View 。

更新您的 createView 方法以处理 View :

-(void)createViewInView:(UIView *)aView{
NSLog(@"enter create app");
UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(50, 0, 320, 100)];
[myView setBackgroundColor:[UIColor redColor]];
[aView addSubview:myView];
}

然后将您的调用更改为:

[instanceOfThirdClass createViewInView:self.view];

此外,请确保您在 ThirdClass.h 的 header 中具有方法签名。应该是:

-(void)createViewInView:(UIView *)aView;

关于ios - 使用实例方法以编程方式添加 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28430071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com