UIImage 未在视图中加载确实在 iOS 中加载
Posted
技术标签:
【中文标题】UIImage 未在视图中加载确实在 iOS 中加载【英文标题】:UIImage not loading on view did load in iOS 【发布时间】:2013-09-02 07:55:09 【问题描述】:当我加载我的应用程序按钮图像时,viewDidLoad
上的第一个视图没有加载,但它在 viewWillAppear
之后加载。
这是我的代码,
if (activityorientation == UIInterfaceOrientationPortrait || activityorientation == UIInterfaceOrientationPortraitUpsideDown)
CGRect frameloginscreenbutton1 = CGRectMake(0, 0, 768,1004);
[loginscreenbutton1 setFrame:frameloginscreenbutton1];
else if(activityorientation == UIInterfaceOrientationLandscapeLeft || activityorientation == UIInterfaceOrientationLandscapeRight)
CGRect frameloginscreenbutton1 = CGRectMake(0, 0, 1024,768);
[loginscreenbutton1 setFrame:frameloginscreenbutton1];
任何指针?
【问题讨论】:
你的按钮代码是什么? if (activityorientation == UIInterfaceOrientationPortrait || activityorientation == UIInterfaceOrientationPortraitUpsideDown) CGRect frameloginscreenbutton1 = CGRectMake(0, 0, 768,1004); [loginscreenbutton1 setFrame:frameloginscreenbutton1]; else if(activityorientation == UIInterfaceOrientationLandscapeLeft || activityorientation == UIInterfaceOrientationLandscapeRight) CGRect frameloginscreenbutton1 = CGRectMake(0, 0, 1024,768); [loginscreenbutton1 setFrame:frameloginscreenbutton1]; @user968597 请通过编辑添加问题中的代码。 实际上,当应用程序运行 iPad 1 时,它会显示按钮图像。但是当应用程序在 iPad 2 上运行时,它不显示按钮图像 【参考方案1】:这有点取决于按钮是否从笔尖加载。如果它是从 nib 加载的,则在调用 viewDidLoad
时它不存在。您可以使用断点自己验证这一点。当viewDidAppear:
被调用时,它已经被创建了。
如果您想配置从 Interface Builder 加载的项目(无论是从 xib 文件还是从 Storyboard),那么这样做的正确时间是覆盖 awakeFromNib
【讨论】:
【参考方案2】:我认为因为没有创建是或类似的......
您可以在零延迟后使用此方法在 viewdidload 中设置帧。
- (void)viewDidLoad
[super viewDidLoad];
[self performSelector:@selector(setButtonFrame) withObject:nil afterDelay:0];
-(void) setButtonFrame
//your code
如果它不起作用,请尝试其他延迟,例如 0.1
【讨论】:
以上是关于UIImage 未在视图中加载确实在 iOS 中加载的主要内容,如果未能解决你的问题,请参考以下文章
在ios中从uitableviewcell拖放到uiimage视图