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 中加载的主要内容,如果未能解决你的问题,请参考以下文章

UIimage 未在 tableview 上加载

在ios中从uitableviewcell拖放到uiimage视图

Google Adsense 广告未在 UIWebView 中加载

数据未在 UITableView 中加载。可能是啥问题?

设置包中的默认值未在 Xamarin.iOS 中加载

Jquery 对话框未在 aspnet MVC 中加载