【发布时间】:2013-06-05 18:03:05
【问题描述】:
我目前正在尝试使用由放置在 .xib 文件上的 UIImageView 表示的 HP 仪表来编写游戏。我声明我的 IBOutlet 如下:
@property (weak, nonatomic) IBOutlet UIImageView *hpGaugeView;
并据此合成。它还链接到 xib 中的 UIImageView 实例。
在 xib 中,我将 hpGaugeView 的长度设置为 188,高度设置为 9。
现在这就是我在 viewDidLoad 中所做的:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[hpGaugeView setFrame:CGRectMake(49, 18, 123, 9)];
NSLog(@"%f, %f", [hpGaugeView frame].size.width, [hpGaugeView frame].size.height);
}
虽然 NSLog 告诉我 hpGaugeView 的宽度是 123,但当我运行它时,与 xib 中的长度相比,长度似乎没有变化。所有其他 setFrame: 或 setBound: 在其他 viewControllers 中工作正常,所以我只是想知道这里发生了什么。
这是一个小而关键的问题,连续困扰了我几个小时......
编辑: 当我关闭 AutoLayout 时,调整大小起作用了;但它会产生许多其他问题......
【问题讨论】:
-
你在使用
AutoLayout吗?如果是这样,UIImageView可能会被限制为 nib 中的固定大小,并且正在重新调整为原始大小。 -
这行得通!但我必须放弃所有的限制......
-
尝试在 viewDidLayoutSubviews 中设置框架并开启自动布局
标签: ios objective-c