0

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] 视图确实出现了 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;

当我使用带有自动布局和情节提要的单视图应用程序运行相同的代码时,它可以正常工作。

我需要这些信息的原因是我需要运行一个在按钮处结束的动画。谢谢瑞恩

4

1 回答 1

1

我通常在新的 iOS 5 方法中做这种事情viewDidLayoutSubviews

不过要小心,因为这个方法可能不止一次被调用,所以你可能必须保留一个标志来跟踪它。

于 2013-05-15T06:09:41.700 回答