升级 Xcode,我有 2 个与 ScrollView 相同的视图。一个 View 将组件添加到 UIScroll 很好,另一个没有
Posted
技术标签:
【中文标题】升级 Xcode,我有 2 个与 ScrollView 相同的视图。一个 View 将组件添加到 UIScroll 很好,另一个没有【英文标题】:Upraded Xcode, I have 2 Identicle views with UIScrollView. One View adds components to UIScroll fine, the other does not 【发布时间】:2012-10-12 14:20:44 【问题描述】:我有一个应用程序多年来一直运行良好。我升级了 XCode,现在我的 1 个视图正在做奇怪的事情。
我尝试添加到 UIScrollview 的对象均未显示。
我有 2 个屏幕,它们的代码基本相同(我实际上是复制和粘贴)。其中一个工作正常,我单击一个按钮移动到另一个屏幕,它不显示我尝试添加到滚动视图的任何组件。
关于什么可能是错误的任何想法?为什么升级 Xcode 后会突然停止添加组件?
我有一个我已经测试并更改为 self.view 的背景图像,它的变化很好。但是我尝试添加到我的 UIScrollView 中的任何内容都没有添加。一些示例代码...
我的 .h 声明
@interface OutgateInputViewController : UIViewController<UITextFieldDelegate,UIPickerViewDelegate>
IBOutlet UIScrollView *outputsView;
我的 .m 中的一个示例
UIGraphicsBeginImageContext(self.view.frame.size);
[[UIImage imageNamed:@"inputbackground.png"] drawInRect:self.view.bounds];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
self.view.backgroundColor = [UIColor colorWithPatternImage:image];
int x = 20;
int y = 20;
CGRect myImageRect = CGRectMake(0, 15, 320, 32.5);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];
NSString *imgName = @"screen_logo.png";
[myImage setImage:[UIImage imageNamed:imgName]];
[outputsView addSubview:myImage];
y = y + 30;
相当标准的东西。直到屏幕的这一点为止,它都是有效的副本。 (即使是很久之后的副本,我只是从不同的位置提取数据)。那么对于发生了什么变化有什么想法吗?
【问题讨论】:
如果在addSubview:
之前添加NSLog(@"Super: %@, Sub: %@", outputsView, myImage);
会显示什么?
好吧,经过进一步调查,这种观点似乎完全被抬高了。通过故事板中的拖放菜单添加的任何内容都被完全破坏了。我重新编辑了我的代码以编程方式添加 UIScrollView 并且效果很好。显然,拖放中添加的任何内容都完全没有响应。我有一个带有 2 个按钮的标题栏,它们看起来像是处于“锁定”模式。按下它们完全没有任何作用(它们甚至不像你按下按钮那样动画。看起来好像屏幕被冻结了)
【参考方案1】:
我回去从头开始重新做所有事情,显然出于某种原因,此视图需要在 .h 中的声明开头添加额外的 __weak ...
目前还不知道为什么,但这解决了整个视图被破坏的问题。
__weak IBOutlet UIScrollView *outputsView;
【讨论】:
以上是关于升级 Xcode,我有 2 个与 ScrollView 相同的视图。一个 View 将组件添加到 UIScroll 很好,另一个没有的主要内容,如果未能解决你的问题,请参考以下文章
升级到 XCode 6.3.2 后核心数据模型找不到自动生成的实体类(使用 Objective-C 而不是 Swift)
升级到 Xcode 4.2/iOS 5 后,类别中的方法引发异常