![](/img/trans.png)
[英]Why are the changes made in Xcode Storyboard not getting reflected on Simulator / Device?
[英]Swift XCode - Changes in storyboard aren't being reflected in the iPhone simulator
我正在尝试制作一个简单的UITableView,该UITableView的每个单元格的右侧都有一个按钮。 我将按钮添加到情节提要中的原型单元并设置了约束,以便AutoLayout接管并将其放置在正确的位置。 当我在助手编辑器中预览布局时,一切看起来都很棒。 但是,一旦启动模拟器并转到该视图,该按钮将不再在那里(单元格为空白)。
当我尝试添加一个披露指示器并且它没有显示时,我遇到了一个类似的问题-要解决该问题,我必须以编程方式添加该附件。 故事板无需使用代码即可帮助进行更改的目的不是吗? 我仍然很新,不胜感激。
编辑:一些要求的代码(对不起):
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
let addButton = UIButton()
let menuItem = currentOrder?.getSortedMenuItems()[indexPath.row]
let itemPrice = "\(currentOrder!.menu[menuItem!]!)"
cell.textLabel!.text = menuItem! + " - " + itemPrice
return cell
}
那里的大多数代码都无关紧要,但是如您所见,我尝试添加一个按钮然后停止了,因为我不确定从那里去哪里。 我的印象是所有这些都可以使用情节提要来完成。
您遇到的问题是由于您没有使用在情节提要中创建的单元而引起的。 你打电话时
let cell = UITableViewCell()
它创建具有默认样式的单元格。 您要做的是使用在情节提要中创建的单元格。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cellWithSwitch") as! UITableViewCell
// setup your cells (e.g. update its title)
return cell
}
您应该将“ cellWithSwitch”更改为您在情节提要中为单元格设置的标识符。
您可以通过在情节提要中选择单元格的标识符,然后在“属性”检查器中检查信息来找到单元格的标识符:
如果尚未设置此标识符,请先设置它,然后再使用它。 然后,您在情节提要中所做的更改将反映在手机上;)
通常有必要对您的单元进行子类化以使其易于使用。 这是一个例子:
class MyCell:UITableViewCell {
@IBOutlet var myButton: UIButton!
}
现在,您还必须做三件事:
1)在情节MyCell
中选择您的单元格, MyCell
在Identity inspector中将其类设置为MyCell
(这是我发布的图像中的第三个选项卡)
2)打开“连接”检查器(最后一个选项卡),然后连接myButton
插座
3)修改您的cellForRowAtIndexPathFunction
:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cellWithSwitch") as! MyCell
// setup your cells (e.g. update its title)
// you can now access your button as cell.myButton
return cell
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.