gpt4 book ai didi

objective-c - 回到基础 - 我想导入 UIView,但我看不到它

转载 作者:行者123 更新时间:2023-11-29 04:25:14 27 4
gpt4 key购买 nike

正如标题所述,我正在尝试导入 UIView,但无法让它工作。代码的第一部分显示了我在不导入任何内容的情况下尝试执行的操作:

@interface ViewController : UIViewController
{

UIView *firstUIView;
UIView *secondUIView;

}

@end

@implementation ViewController

-(void)firstUIView
{
firstUIView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
firstUIView.backgroundColor = [UIColor redColor];
[self.view addSubview:firstUIView];
}

-(void)secondUIView
{
secondUIView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 320, 100)];
secondUIView.backgroundColor = [UIColor blueColor];
[self.view addSubview:secondUIView];
}

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

[self firstUIView];
[self secondUIView];

}

@end

现在下面的位没有给出相同的结果,但我想要它 - 我哪里出错了?

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

firstUIViewExternal *firstUIView = [[firstUIViewExternal alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
secondUIViewExternal *secondUIView = [[secondUIViewExternal alloc] init];


[self.view insertSubview:firstUIView aboveSubview:self.view];
[self.view addSubview:secondUIView];

}

@end

firstUIViewExternal和secondViewExternal的代码相同,只是名称不同,如下:

-(void)secondUIView
{
secondUIView = [[UIView alloc] initWithFrame:CGRectMake(0, 100, 320, 100)];
secondUIView.backgroundColor = [UIColor blueColor];
[self addSubview:secondUIView];
}

然后使用 #imported 导入它们,并在上面的 -(void)viewDidLoad 方法中声明使用。

为什么导入的版本不起作用?

如果需要,我会提供任何额外信息。谢谢:-)

这就是我想要通过导入 UIView 来实现的目标,但我得到的是一个空白的白色 View :

enter image description here

最佳答案

我在您的代码中注意到两件事:

  1. 您没有指定 secondaryUIView 的帧大小。
  2. 您只需重写“UIViewExternal” View 中的 initWithFrame 方法并从 UIView 继承即可。

您要导入的 View 的代码应如下所示:

.h:

#import <UIKit/UIKit.h>
@interface firstUIViewExternal : UIView
@end

.m:

#import "firstUIViewExternal.h"
@implementation
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor blueColor];
}
return self;
}
@end

关于objective-c - 回到基础 - 我想导入 UIView,但我看不到它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12415465/

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