我正在尝试将 Android 应用程序移植到 ios。自从我完成 c/c++ 以来已经有一段时间了,无论如何我对目标 c 完全陌生:我从单个视图“ViewController”开始。我有一个在 ViewController.mm 中创建数据的按钮。为简单起见,可以说它只是一个双倍。
视图控制器.mm:
double myDouble = 13;
我有一个按钮,可以像这样启动下一个视图:
[[NSBundle mainBundle] loadNibNamed:@"TrimView" owner:self options:nil];
[self.view addSubview:TrimView];
在“TrimView”上,我想以图形方式显示我在 ViewController.mm 中获得的数据,因此是双倍的 myDouble。我按照这个小教程来画线: http ://www.techotopia.com/index.php/An_iPhone_Graphics_Drawing_Tutorial_using_Quartz_2D
我使用这段代码来画线:TrimView.mm:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 2.0);
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGFloat components[] = {0.0, 0.0, 1.0, 1.0};
CGColorRef color = CGColorCreate(colorspace, components);
CGContextSetStrokeColorWithColor(context, color);
CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 300, 400);
CGContextStrokePath(context);
CGColorSpaceRelease(colorspace);
CGColorRelease(color);
}
我有点卡住了,我现在正在寻找意见,我应该如何继续。为简单起见,假设我只想在位置 myDouble 处开始在 trimView.mm 中绘制的线。我如何将它从 ViewController 转移到 trimView ?
我现在的问题是我没有类似的东西
TrimView tf;
在 ViewController.mm 中我可以执行以下操作:
TrimView.setMyDouble(myDouble);
我只是(如上所述):
[[NSBundle mainBundle] loadNibNamed:@"TrimView" owner:self options:nil];
[self.view addSubview:TrimView];
阅读答案后,我尝试了这个:
TrimView *nextView = [[TrimView alloc] initWithNib=@"TrimView" bundle=nil];
但是得到了这个:“'UIView'没有可见的@interface声明选择器'alloc'”
修剪视图.h:
#import <UIKit/UIKit.h>
@interface TrimView: UIView
@property(nonatomic) double *myDouble;
@end