不确定将代码放在程序中的啥位置。如何在 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 应用程序中的啥位置?

将“资产”文件夹放在 Android Studio 中的啥位置?

我应该将瞬态域类放在 grails 应用程序中的啥位置?