【发布时间】:2015-04-17 04:15:10
【问题描述】:
我无法解决的非常大的困惑......
我可能对一些基本的东西感到困惑..但我就是无法直截了当
这里有两件事
- UIViewController
- UIViewController 中的 UIView 对象
这是我所做的:
1) 创建一个单视图项目 -> 从情节提要中,我将 UIView 拖到 UIViewController 上
2) new->创建 myUIViewClass.h 和 myUIViewClass.m 的文件,它们是 UIView 的子类。
3) 将我拖出的 UIView 的“自定义类”分配给 myUIViewClass
4) 回到 UIViewController,控制 + 将该 UIView 拖到我的 myUIViewController.h 并使其成为这样的插座:
myUIViewController.h
#import <UIKit/UIKit.h>
#import "myUIViewClass.h"
@interface myUIViewController : UIViewController
@property (strong, nonatomic) IBOutlet myUIViewClass *uiview;
@end
4) 在 myUIViewClass.h 中创建属性,它将直接对 UIView 进行一些绘图:
myUIViewClass.h
#import <Foundation/Foundation.h>
@interface myUIViewClass : NSObject
//I want to use this array in - (void)drawRect:(CGRect)rect {} method.
@property (nonatomic, strong) NSArray *arrayInsideUIView;
@end
4) 在myUIViewClass.m 中,因为它是UIView 的子类,所以在我运行项目时会调用这行代码:
myUIViewClass.m
- (void)drawRect:(CGRect)rect {
NSLog(@"drawing starts");
}
5) 现在,我希望它是这样的:
- (void)drawRect:(CGRect)rect {
NSLog(@"data to draw with: %@", _arrayInsideUIView);
}
6) 但在此之前,我需要填充 _arrayInsideUIView。我想从 myUIViewController.m 执行此操作
7) 我该怎么做?
不对1:
myUIViewController.m
- (void)viewDidLoad {
_uiview = [UIView alloc] init];
_uiview.arrayInsideUIView = @[@"one", @"two"];
//the array is not inside UIView, but inside myUIViewClass
}
不对2:
myUIViewController.m
- (void)viewDidLoad {
_uiview = [[myUIViewClass alloc] init];
[self.view addSubview: _uiview];
//this creates duplicate UIView's
}
不对 3:
myUIViewController.m
- (void)viewDidLoad {
myUIViewClass *uiviewclass = [[myUIViewClass alloc] init];
uiviewclass.arrayInsideUIView = @[@"one", @"two"];
//No UIView gets created here
}
好困惑!
【问题讨论】:
-
既然你去了
@property (strong, nonatomic) IBOutlet myUIViewClass *uiview;,这个uiview是在情节提要中挂钩的吗?例如,@property 左侧的小圆圈是填充的还是空的? -
是的,它已连接。圆圈也被填满了。
标签: ios objective-c iphone uiview uiviewcontroller