Creating object programmatically and changing that object's position

≡放荡痞女 提交于 2019-12-11 02:55:12

问题


I am trying to create a couple of UIImageViews (preferably with a for loop) and then afterwards move them, but I don't know how because I'm having trouble figuring out how to reference them if they will be made programmatically.

So I want something like this:

    for (int i = 0; i < 2; i++)
    {
        UIImageView *iv = [[UIImageView alloc]initWithImage:[UIImage imageNamed: picturo]];
        CGRect rect = CGRectMake((i * 50) + 50,30, 25, 25);
        [iv setFrame:rect];
        iv.tag = i;
        [self.view addSubview:iv];
    }

    (iv with tag of 0).center.y = 80; // <-- How do I do that!!

Obviously this example has no practical use and I could just change y value of 'rect' above to 80, but I want to know how to:

a. Create multiple uiimageviews (or any object for that matter) and be able to identify/reference/manipulate each one individually (I don't know how but I would assume by either naming them uniquely or using tags) and

b. Be able to identify/reference/manipulate an object that was created programmatically.


回答1:


creating views with tags works the way you have it.

To access those views use the viewWithTag property on a view to identify one of it's subviews:

  UIView* subview = [self.view viewWithTag:0];
  subview.center = CGPointMake(subview.center.x, 80);

(you cannot write to a view.center's x or y, you have to recreate the whole thing. Likewise with other geometric structs such as CGSize, CGRect)



来源:https://stackoverflow.com/questions/14554459/creating-object-programmatically-and-changing-that-objects-position

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!