首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >IBOutlet UIImageView

IBOutlet UIImageView
EN

Stack Overflow用户
提问于 2012-05-21 13:45:16
回答 4查看 3.6K关注 0票数 0

我得到了30个这样的代码,具有相同的实现:

// .h

代码语言:javascript
运行
复制
@interface ViewController : UIViewController{
IBOutlet UIImageView *circle;
IBOutlet UIImageView *circle2;
}
@property (nonatomic, retain) IBOutlet UIImageView *circle;
@property (nonatomic, retain) IBOutlet UIImageView *circle2;

// .m

代码语言:javascript
运行
复制
@implementation ViewController

@synthesize circle;
@synthesize circle2;

- (void)viewDidLoad
{
circle = [[UIImageView alloc]
                      initWithImage:[UIImage imageNamed:@"Circle.png"]];
circle2 = [[UIImageView alloc]
                      initWithImage:[UIImage imageNamed:@"Circle.png"]];
}

在我的代码中的某个地方,我将它添加为一个子视图。

我的问题是,有没有一种方法可以让它变得更短,让它变得可维护。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-21 13:51:10

您可以使用一个IBOutletCollection而不是30个IBOutlets。不过,您可能希望在每个UIImageView上设置标记,以便仍然可以区分它们。

(此答案假设您使用笔尖。如果是,请删除在viewDidLoad中实例化UIImageView的行。)

票数 0
EN

Stack Overflow用户

发布于 2012-05-21 13:49:46

如果你使用像- Circle1.pngCircle2.png这样的名字,那么你可以使用for循环来在循环中创建它。

就像这样-

代码语言:javascript
运行
复制
for (int i = 0; i < imageCount ; i++ ) {
    circle = [[UIImageView alloc]
                  initWithImage:[UIImage imageNamed:[NSString stringWithFormat: @"Circle%d.png" , i]]];
}
票数 0
EN

Stack Overflow用户

发布于 2012-05-21 13:50:53

在他们的superview中,你有没有一个模式来放置这些视图?如果是这样的话,您可以使用for循环,该循环转到30,然后以编程方式创建视图并将其添加到其superview中。

举个例子:

代码语言:javascript
运行
复制
   for (i = 0; i < 100; i++)
    {
        UIImageView* circle = [[UIImageView alloc]
                      initWithImage:[UIImage imageNamed:@"Circle.png"]];
        [self.view addSubview:circle];
    }

将添加100个您想要的图像视图。当然,您需要调整循环中每个视图的位置,但这是一般的想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10680024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档