我和这个人一直在斗争很长一段时间.假设我有一个UIViewController,需要在该控制器中放置一个带有UIImage的UIImageView.所以我有两种方法可以做到:
1.)通过故事板
2.) UIImageView *imageView = [UIImageView new];
imageView.frame = CGRectMake(bla, bla, bla);
[self.view addSubview: imageView];
此外,我需要支持不同的屏幕尺寸(从iPhone 4到iPhone6 +),并且对我来说,限制的自动布局并不完全清楚.而且我很喜欢
int wrapperHeight = (screen.height == 480) ? 100 : 200
我觉得我做错了什么.当我开始学习objective-c时,我看到了一些开源项目,根本没有故事板,所以我认为以编程方式添加视图是一种很好的做法.
你能解释一下"正确的方法"吗?
帮我解决这个意想不到的麻烦.
if (view.tag != nil)
Run Code Online (Sandbox Code Playgroud)
^^这对我有用,但突然我给视图分配了0个标签,现在一切都坏了.
如何检查视图是否分配了标签?
谢谢
所以我有一个带有表视图的UIViewController.我做了这个没有故事板.
在这个viewController中我有一个HTTPResponse方法,我创建tableview并为其分配委托和数据源.
- (void)APIDownload:(APIDownload*)request {
CJSONDeserializer *deserializer = [CJSONDeserializer deserializer];
NSError *error = nil;
NSDictionary *data = [deserializer deserializeAsDictionary :request.downloadData error:&error];
if (error) {
[[iToast makeText:@"serious error"] show];
} else {
if (data && data[@"status"] && [data[@"status"] isEqual:@"ok"]) {
self.categoriesArray = data[@"data"];
self.rootTable = [[UITableView alloc] initWithFrame:self.slideContainer.frame
style:UITableViewStylePlain];
self.rootTable.delegate = self;
self.rootTable.dataSource = self.categoriesArray;
[self.slideContainer addSubview:self.rootTable];
[self.rootTable reloadData];
[self.rootTable setHidden:NO];
} else {
[[iToast makeText:[NSString stringWithFormat:@"%@", data[@"data"][@"message"]]] show];
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经为uitableviewdelegate和uitableviewdatasource实现了所有四种必要的方法,但仍然得到了
2015-07-27 12:57:29.073 xxx[10663:602881] -[__NSCFArray tableView:numberOfRowsInSection:]: unrecognized selector sent …Run Code Online (Sandbox Code Playgroud)