iOS 编程中心组的 UIViews

Posted

技术标签:

【中文标题】iOS 编程中心组的 UIViews【英文标题】:iOS Programming Center Group of UIViews 【发布时间】:2013-02-16 15:12:32 【问题描述】:

我想知道如何/是否可以这样做:将一组 UIView 居中在一个超级视图中。最终结果将是一组明显居中在其超级视图中的视图。

【问题讨论】:

【参考方案1】:

嗯,这是一个两步的过程;首先将 UIViews 添加到数组中,然后快速枚举以将它们作为“组”居中

//step 1: create the objects
self.label1= [[UILabel alloc]init];
self.label1.font=[UIFont systemFontOfSize:30.0];
self.label1.text=@"1";

self.label2= [[UILabel alloc]init];
self.label2.font=[UIFont systemFontOfSize:30.0];
self.label2.text=@"2";

self.label3= [[UILabel alloc]init];
self.label3.font=[UIFont systemFontOfSize:30.0];
self.label3.text=@"3";


//step2: create the array and add the objects to the array
self.arrayOfViews=[[NSMutableArray alloc]initWithCapacity:4];
[self.arrayOfViews addObject:self.label1];
[self.arrayOfViews addObject:self.label2];
[self.arrayOfViews addObject:self.label3];



//step3: use fast enumeration to be able to control them as "group"
for(UIView* currentViewObject in self.arrayOfViews)

    currentViewObject.alpha=0.3;
    currentViewObject.frame=CGRectMake(self.view.bounds.size.width/2-sizeOfObject/2,self.view.bounds.size.height/2-sizeOfObject/2,sizeOfObject,sizeOfObject);
    [self.view addSubview:currentViewObject];

第 1 步和 alpha 设置仅用于测试目的。

希望这会有所帮助。

【讨论】:

initWithCapacity:4的目的是什么? 使用前需要先分配初始化 NSMutableArray。可变数组根据需要扩展; 4 简单地建立了对象的初始容量。如果你放 2,它也会起作用。 好的,所以你可以使用init? 由于 NSMutableArray 类继承自 NSArray,看来可以。我只是没有看到它在 NSMutableArray 中使用。一直都是-initWithCapacity。 好吧,我总是使用简单的旧init。只是想看看有没有什么特别之处。

以上是关于iOS 编程中心组的 UIViews的主要内容,如果未能解决你的问题,请参考以下文章

ios - 如何使用ios swift中的自动布局以编程方式将两个标签并排放置在中心位置?

UIView commitAnimations - 沿中心缩放

IOS / Objective-C:以编程方式在按钮下的中心线

iPhone如何以编程方式访问通知中心

在 UIView 的中心添加 UILabel

以编程方式创建 Azure 推送通知中心