我想一个UIPickerView添加到一个UITableViewCell。 现在我刚开黑色窗口。 可也有人解释我继承UI对象的细胞,即概念:我们什么时候让我们的细胞作为委托和数据源委托? 谢谢
编辑:这是什么,我现在在做的代码
case 1: {
cell = [tableView dequeueReusableCellWithIdentifier:@"groups"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"groups"];
}
/*NSString *myGroupDetail = [_groupArray objectAtIndex:indexPath.row];
NSLog(@"the group detail label is %@",myGroupDetail);
cell.textLabel.text = myGroupDetail;
*/
[cell addSubview:_groupPicker];
break;
}
基团是其中我想选择器视图的部分,我从阵列得到的数据。
你将不得不分配和在tableviewdelegate你cellForRow方法初始化pickerview。 生病素描为你=)如何初始化细胞本身不应该是很难找到,如果你google了一下;-)
...(tableView *)... cellForRowAtIndexPath... {
if(indexPath.row == pickerRow){
UIPickerView *pickerView = [[UIPickerView alloc]init];
cell = ... // alloc and initialize a cell
cell addSubview:pickerView];
}
else{ // your other cells }
return cell;
}
目前有IM使用Git麻烦,所以我上传的样本项目,以我的私人服务器:UPDATE UITablePicker例子
github上: https://github.com/sebamisc/UItableViewWithPicker
郁可修改,并且按照自己想要=使用的代码)
塞巴斯蒂安
嗯,我从来没有这一点。
它必须在一个单元格,或者您可以使用该表的页眉或页脚的看法? (我不会建议一节页眉/页脚视图。)
假设它是一个UITableViewCell内。 是的,我个人继承的UITableViewCell。 做了很多。 在这种情况下,你的细胞的对象可能是选择器的数据源委托。 这样做你的UITableViewCell的子类(假设你的名字MyTableViewCell)需要履行相关协议。 您以编程方式添加init方法MyTableViewCell的(initWithStyle)内的UIPickerView。 对于表格单元格内的布局,你应该覆盖的方法layoutSubviews。 如果您的应用程序,可以旋转到横向和纵向和/或如果您的应用程序被设计为在iPad以及运行,则此方法应该考虑动态表的范围。 (屏幕或windwo界经常被用来hiere但是当一个分割主视图或上ipad公司弹出视图内显示的表中未保存。)
严格来说你MyTableViewCell不应该是数据源委托,只是因为它是一个视图元素和视图对象是不应该的MVC设计模式中管理任何业务逻辑。 更智能的将是你的表格视图单元格帽子一些专用视图控制器的实现满足协议,被指定为代表。 然而,无论是可行的。 在它是你的销售中唯一的选择器视图的事件,那么你可以很容易地使用你的UITableViewController子类,即使没有标记的UIPickerView。
要继承一个UITableViewCell另一种方法是你tableViewController的方法的cellForRowAtIndexPath内创建UIPickerView。 这是罚款烧毛定向应用。 不过,您可以设置它的方式,它会自动重新安排其UIPickerView。
在任何情况下,你应该覆盖的UITableViewController的heightForRowAtIndexPath方法时,你的表视图不具有相同的HIGHT了。 如果所有的人都仍然具有相同的高度,那么你可以简单地设置您的UITableView的rowHeight属性。