我是Objective-C的新手并尝试创建自定义单元格.在故事板(在Xcode 4.2下)我正在推动一个TableViewController.在这个控制器我正在显示一些简单的单元格,但现在我想自定义它们.(在较旧版本的Xcode中,我使用的是这样的东西:
if (cell == nil) {
NSArray * topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:nil options:nil];
for(id currentObject in topLevelObjects) {
if([currentObject isKindOfClass: [UITableViewCell class]]) {
cell = (detailViewCell *) currentObject;
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
加载我的自定义单元格,但现在这不再工作,因为我收到一个错误,找不到Nib文件"MyNib",当然..因为我正在使用故事板..但我该如何解决?如何从Storyboard加载CustomCell?
编辑:"哈哈,我是个白痴......我自己解决了这个问题.
static NSString *CellIdentifier = @"detailsViewCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
Run Code Online (Sandbox Code Playgroud)
我认为这些行创建了一个标识为"detailsViewCell"的新标准单元格,所以我还没有将其更改为我的自定义单元格标识符,但是,是的,而不是它们加载我创建的自定义单元格.:)现在一切正常!"
我正在设置我的UITableView故事板编辑器.为了创建我的单元格,我使用标准委托方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SearchResultCell"];
if (cell == nil)
{
// Do cell setup
}
// etc
return cell;
}
Run Code Online (Sandbox Code Playgroud)
除非细胞第一次出现,否则它应该是非零的.所以if语句中的代码永远不会被执行.
当人们的重用标识符不一致时,人们会收到此错误,因此我继续验证我在故事板视图中使用与我的代码中完全相同的重用标识符.仍然面临着这个问题.我在项目中也有几个表视图,每个都有一个唯一的重用标识符.仍然没有骰子.任何人都知道其他任何错误吗?
我正在努力想弄清楚故事板,这一切看起来都很酷但我无论是按下哪个按钮,我都会遇到从带有几个按钮的屏幕移动到另一个屏幕的问题.很显然,我可以控制每个按钮的拖动,但后来我在故事板上的所有位置上都是不好的,我觉得必须有一个更好的方法来做到这一点.我已经尝试突出显示所有按钮和控制 - 拖动到下一个屏幕,但这只是导致我拖动的按钮工作.
这里有一个我现在有用的例子......

如果我必须坚持这一点,那就这样吧,但我最终会在一页上有6个按钮而在另一页上有8个按钮.这有很多段.基本上每个按钮表示用户的选择.该选择将导致幕后发生不同的事情,但无论他们选择哪个按钮,他们都会移动到下一个屏幕.
我试过的:
我正在以编程方式创建按钮,然后我想添加功能,当他们点击/按下它们时,除非再次点击,否则它们会保持高亮显示.我现在正在做的是创建按钮,然后尝试添加IBAction.但是,问题是我在方法中创建了按钮,然后我不确定如何在IBAction中引用该按钮.这是我的代码:
UIButton* testButn = [UIButton buttonWithType:UIButtonTypeCustom];
[testButn setFrame:CGRectMake(0, 135, 40, 38)];
[testButn setImage:[UIImage imageNamed:@"test_butn_un.png"] forState:UIControlStateNormal];
[testButn setImage:[UIImage imageNamed:@"test_butn_pressed.png"] forState:UIControlStateHighlighted];
[testButn addTarget:self action:@selector(staypressed:) forControlEvents:UIControlEventTouchUpInside];
[self.contentview addSubview:testButn
-(IBAction)staypressed:(id)sender{
//Not sure what to do here, since this method doesn't recognize testButn, How do I reference testButn
Run Code Online (Sandbox Code Playgroud) 我的团队正在开发具有UITabBarController的应用程序。我们正在使用Storyboard开发界面和流程。
由于我们是一个团队,因此我们不能将所有流程都放在一个故事板上,因为这将导致与SVN同步的问题。因此,解决方案是将每个选项卡的流程放在一个不同的情节提要文件中。
如我在本教程中所见,当我可以创建一个对象进行连接(例如,一个按钮)时,故事板之间的连接就不是问题。
但是,当我将UITabBarController放在一个情节提要板中时,无法以编程方式设置将为tabBar的每个按钮显示的情节提要板来管理底部栏的视图元素(tabBar本身)。
现在,我在同一.storyboard文件中拥有TabBar和UIViewControllers,如下所示:

因此,我需要通过一个UITabBarController连接不同的故事板。怎么做?
我有一个非常基本的基于故事板的应用程序,带有UINavigationController,主视图和辅助视图,两者都在导航层次结构中.我正在隐藏主视图上的导航栏,方法setNavigationBarHidden:是在viewWillAppear和中使用viewWillDisappear.似乎应该有一种方法可以在Interface Builder中执行此操作,而不是在代码中执行此操作.基本上我想要模拟指标选项中可用的选项,但不是模拟的.那存在吗?
我有一个按钮,需要"粘住"在3.5英寸和4英寸iPhone上的主视图底部.目前,我可以在3.5英寸视图上将其移动到故事板的底部,然后在4英寸上移动看来,它向上移动.
如何在两种屏幕尺寸上将按钮固定在视图底部?
我想在Decimal Pad键盘上添加一个"Done"按钮和一个分段控件.理想情况下,我想在Interface Builder中使用自动布局布置键盘附件视图.
这甚至可能吗?我是否创建了一个新的XIB,或者我可以在现有的Storyboard场景中以某种方式创建它?如何将附件视图附加到相应的文本字段?
我正在尝试在ios 9故事板中制作一个全宽按钮,并且我正在尝试创建宽度自动约束,但宽度约束似乎只需要一个精确的静态数字.如何使项目全宽.
另外,如果我想说一个imageview是全高和可调宽度来保持它的宽高比 - 或者是一个适合填充的大小,我将如何使用故事板中的自动布局约束来做到这一点.
我应该在视图控制器中以编程方式执行此操作吗?
实现以下内容(类继承)之后:
class UIViewControllerA: UIViewControllerB {
}
Run Code Online (Sandbox Code Playgroud)
如何让它UIViewControllerA继承UIViewControllerBIBOutlets?如何将Storyboard上的组件连接到子类UIViewControllerA?
uistoryboard ×10
ios ×7
autolayout ×3
objective-c ×3
xcode ×3
cells ×1
ibaction ×1
iboutlet ×1
inheritance ×1
ios5 ×1
ios9 ×1
iphone ×1
segue ×1
swift ×1
uibutton ×1
uitableview ×1
xcode5 ×1