【问题标题】:Create a CALayer on each click of a button [closed]每次单击按钮时创建一个 CALayer [关闭]
【发布时间】:2014-01-26 16:04:35
【问题描述】:

我有一个 IBAction 和一个 CALayer(在 viewDidLoad 中),所以我需要在用户单击添加按钮时添加一个 CALayer(在不同的 CGPoints 中)。

提前致谢

【问题讨论】:

  • 什么?你说“我有一个程序的想法,我希望互联网会为我编写它?”表现出一些努力,伙计!你试过什么?您是否查找过代码以将图层添加到视图?您是否尝试过使该代码与您的应用程序一起使用?如果您遇到问题,请发布您的代码并说明您遇到的问题,然后我们将为您提供帮助。
  • 我已经做了所有这些,但最终问题只是定位

标签: ios objective-c core-graphics core-animation calayer


【解决方案1】:

我认为您是iOS新手,这就是我回答答案的原因,否则我建议使用google。

你可以这样做:

- (IBAction)myButtonClick:(id)sender
{
    static float xPos = 0;
    static float yPos = 0;

    CALayer *myLayer = [CALayer layer];
    [myLayer setBounds:CGRectMake(0.0f, 0.0f, 50.0f, 30.0f)];
    [myLayer setPosition:CGPointMake(xPos, yPos)];   //You need to change the value here dynamically for changing the layer position
    [myLayer setFontSize:20];
    [self.view.layer addSublayer:myLayer];

    xPos += 50;
    yPos += 50;
}

【讨论】:

  • 太棒了,但每次点击按钮时都不会显示新图层
  • @KevinMartin:你是否改变了我在评论中提到的观点?我认为没有,然后将图层添加到相同的位置。
  • @KevinMartin:请查看更新后的答案
  • 那么我将如何改变观点(对不起,我是iOS开发的新手)
【解决方案2】:

假设您已经拥有 IBAction,只需使用以下代码:

// Create a new CALayer
CALayer *myLayer = [CALayer layer];

// Modify frame
myLayer.frame = CGRectMake(0, 0, 100, 100);

// Modify position (change for your necessity)
myLayer.position = CGPointMake(0.0f, 0.0f); 

// Add layer to the actual view's layer
[self.layer addSublayer:myLayer]; 

【讨论】:

    猜你喜欢
    • 2013-08-22
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2021-08-16
    相关资源
    最近更新 更多