gpt4 book ai didi

iphone - 如何在不同方向设置 UILabel 的位置

转载 作者:行者123 更新时间:2023-11-28 17:41:53 29 4
gpt4 key购买 nike

我有一个 View ,我正在以编程方式创建一个 UILabel 并将其称为我的参数传递,因为我需要许多具有不同位置框架的 UILabel 文本,所以我通过参数传递调用它。

使用下面的代码,当我旋转到横向模式时,纵向 View 标签仍然出现。我该如何克服这个问题?我需要在下面的代码中完成。我想要将 Label 框架的位置从纵向 View 更改为横向 View 。

注意:我需要创建大约 15 到 20 个标签,所以我使用参数传递,这样我就不需要为创建每个标签编写尽可能多的方法。

-(UILabel*)createLabel:(CGRect)frame :(NSString*)labelTitle
{
UILabel *myLabel = [[UILabel alloc] initWithFrame:frame];
[UIFont fontWithName:@"Arial" size:13];
myLabel.text = labelTitle;
}

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{
if(interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
[self.view addSubview:[self createLabel:CGRectMake(450,140,60,20):@"Ratings:"]];
[self.view addSubview:[self createLabel:CGRectMake(450,170,60,20):@"Reviews:"]];
}
else
{
[self.view addSubview:[self createLabel:CGRectMake(650,140,60,20):@"Ratings:"]];
[self.view addSubview:[self createLabel:CGRectMake(650,170,60,20):@"Reviews:"]];
}

return YES;
}

最佳答案

不要在 shouldAutorotateToInterfaceOrientation 中创建它们,因为每次方向改变时都会调用它,从而创建更多标签。

而是在 - (void) loadView 中创建它们一次,并为它们提供正确的 autoResizingMask 属性,例如:

myLabel.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth ;

当方向改变时,这将导致所需的行为:标签将自动调整大小,整个转动动画将变得流畅。

PS:请注意,您创建标签的方式会导致内存泄漏,请使用 release 方法来防止这种情况发生。

关于iphone - 如何在不同方向设置 UILabel 的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807019/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com