有一个类似但尚未解决的问题 bound and frame for a UIButton
我正在使用自动布局的故事板和“基于页面的应用程序模板”
我能够通过使基于标准页面的应用程序向故事板添加按钮并在其中引用它来重现此问题
DataViewController.m 的viewDidAppear
- (void)viewDidAppear:(BOOL)animated
{
NSLog(@"View did appear");
NSLog(@"self.myButton.bounds = %@",NSStringFromCGRect(self.myButton.bounds));
NSLog(@"self.myButton.frame = %@",NSStringFromCGRect(self.myButton.frame));
NSLog(@"self.myButton = %@",self.myButton);
}
输出
2013-05-14 19:37:45.954 FrameTest4 [10777:c07] View确实出现了
2013-05-14 19:37:45.966 FrameTest4 [10777:c07] self.myButton.bounds = {{0,0},{0,0}}
2013-05-14 19:37:45.968 FrameTest4 [10777:c07] self.myButton.frame = {{0,0},{0,0}}
2013-05-14 19:37:45.970 FrameTest4 [10777:c07] self.myButton =>
标题文件
#import <UIKit/UIKit.h>
@interface DataViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *dataLabel;
@property (strong, nonatomic) id dataObject;
@property (weak, nonatomic) IBOutlet UIButton *myButton;
当我使用单个视图应用程序使用自动布局和故事板运行相同的代码时,它可以正常工作。
我需要这些信息的原因是我需要运行一个以按钮结束的动画。 谢谢 莱恩
答案 0 :(得分:1)
我通常在新的iOS 5方法viewDidLayoutSubviews
中执行此类操作。
但要小心,因为这种方法可能不仅仅被称为一次,所以你可能需要保持一个标志来跟踪它。