不确定将代码放在程序中的啥位置。如何在 XCode 中通过触摸生成圆圈。 (目标-C)
Posted
技术标签:
【中文标题】不确定将代码放在程序中的啥位置。如何在 XCode 中通过触摸生成圆圈。 (目标-C)【英文标题】:Unsure where to put code in program. An how to have circles generated on touch in XCode. (Objective-C)不确定将代码放在程序中的什么位置。如何在 XCode 中通过触摸生成圆圈。 (目标-C) 【发布时间】:2021-04-25 01:58:21 【问题描述】:使用的程序:XCode
语言:Objective-C
我正在尝试做的事情:创建一个程序,该程序创建一个以触摸为中心且直径随机的圆。
下面的破折号我有什么代码我必须在我的 UIView 中创建一个随机直径的圆。我基本上是一个初学者,所以我完全不确定将这段代码实际放在程序文件中的哪个位置(viewcontroller、scenedelegate 等)。我也不确定如何创建代码以在屏幕触摸上完成。
非常感谢任何帮助或提示。
float rndValue = (((float)arc4random()/0x100000000)*47);
CAShapeLayer *circleLayer = [CAShapeLayer layer];
[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, rndValue, rndValue)] CGPath]];
[[self.view layer] addSublayer:circleLayer];
[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];
【问题讨论】:
这不是我们在这里展示代码的方式 那我该怎么做,之前没有发布过代码吗?编辑-我找到了这样做的工具,感谢您通知我以这种方式格式化。 【参考方案1】:一般来说,操作CALayer
的代码块应该放在UIView
子类中,当然也可以放在[UIViewController viewDidLoad:]
或其他地方。
例如,在随机位置绘制圆的视图如下所示:
#import "RandomCircleView.h"
@implementation RandomCircleView
- (instancetype)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame];
if (self)
[self configureSublayers];
return self;
// MARK: Private
- (void)configureSublayers
float rndValue = (((float)arc4random()/0x100000000)*47);
CAShapeLayer *circleLayer = [CAShapeLayer layer];
[circleLayer setPath:[[UIBezierPath bezierPathWithOvalInRect:CGRectMake(50, 50, rndValue, rndValue)] CGPath]];
[self.layer addSublayer:circleLayer]; // ! this line is modified
[circleLayer setStrokeColor:[[UIColor redColor] CGColor]];
[circleLayer setFillColor:[[UIColor clearColor] CGColor]];
@end
然后您可以在视图控制器中添加该视图,例如
- (void)viewDidLoad
[super viewDidLoad];
RandomCircleView *randomCircleView = [[RandomCircleView alloc] init];
[self.view addSubview:randomCircleView];
// You may want to adjust the frame of randomCircleView here...
您还可以通过指定自定义类在 .xib 和 .storyboard 文件中使用RandomCircleView
。
【讨论】:
以上是关于不确定将代码放在程序中的啥位置。如何在 XCode 中通过触摸生成圆圈。 (目标-C)的主要内容,如果未能解决你的问题,请参考以下文章
我应该将前端代码放在我的后端项目中的啥位置以及如何/何时运行它?
我应该将 Angular 代码放在这个 Mean.js 应用程序中的啥位置以使该列表可排序?
我应该将我的 XML bean 放在 Spring Boot 应用程序中的啥位置?