我Tableview在swift中有一个Custom 单元格,在该单元格中有一个标签.
我希望能够在选择单元格时更改标签.
如何在中引用我的自定义UITableviewCell标签didSelectRowAtIndexPath
在Objective C中引用我的自定义单元格,didSelectRowAtIndexPath我将使用以下内容:
MPSurveyTableViewCell *cell = (MPSurveyTableViewCell *)[tableViewcellForRowAtIndexPath:indexPath];
cell.customLabel.TextColor = [UIColor redColor];
Run Code Online (Sandbox Code Playgroud)
我必须在swift中做些什么才能达到相同的效果?
这是我的头脑:-)
我有一个功能齐全的CoreData填充UITableView内部UIViewController,我已经成功实现了"滑动删除选项"(这很简单),我还可以删除单个实例,其中有一个编辑按钮,红色圆圈内容出现.
我的问题是,我认为这是因为我有一个CustomCell,当我按下编辑按钮时,UILabels不要向右移动.
我尝试过使用-(void)layoutSubViews和其他一些,但没有任何作用.
我已经发布了我的代码cellForRowAtIndexPath.这是我的应用程序中的注释部分的一部分.这段代码有效,我只需要知道当我进入编辑模式时如何移动标签?
谢谢你的提示和建议:-)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
MNCustomCell *cell = [_mainTableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
if (cell == nil) {
cell = [[MNCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
//cell.textLabel.text = [_tableArray objectAtIndex:indexPath.row];
MNotes *mnotes = [[self fetchedResultsController] objectAtIndexPath:indexPath];
cell.noteTitle.text = mnotes.noteTitleString;
cell.noteSummary.text = mnotes.mainNoteString;
mnotes.createDate = [[NSDate alloc] init];
SORelativeDateTransformer *relativeDateTransformer = [[SORelativeDateTransformer alloc] init];
NSString *relativeDate = [relativeDateTransformer transformedValue:mnotes.createDate];
cell.noteDate.text …Run Code Online (Sandbox Code Playgroud) 你能告诉我,在UITableview上滑动单元格时如何添加自定义图像来删除按钮?
我使用Xib文件而不是故事板.我创建了一个包含一些虚拟数据的表视图.它的工作正常,现在我已经创建了一个带有一些标签和textFields的自定义单元格.如何将其用作UITableView的页眉或页脚?
我已根据inStock或outStock写了一个代码来改变单元边框的颜色,如果它在inStock它将是红色边框,否则它将是绿色的,但我不适合我,我把它放在willDisplayCell中,这里是我的代码:
func tableView(_ tableView: UITableView,
willDisplay cell: UITableViewCell,
forRowAt indexPath: IndexPath){
cell.backgroundColor = UIColor.clear
cell.contentView.backgroundColor = UIColor.clear
let whiteRoundedView : UIView = UIView(frame: CGRect(x:10,y: 5,width: self.view.frame.size.width - 20,height: 214))
whiteRoundedView.layer.masksToBounds = false
whiteRoundedView.layer.cornerRadius = 5.0
whiteRoundedView.layer.shadowOffset = CGSize(width: -1,height: 1)
whiteRoundedView.layer.borderWidth = 2
cell.contentView.addSubview(whiteRoundedView)
cell.contentView.sendSubview(toBack: whiteRoundedView)
if stock[indexPath.row] == "inStock" {
whiteRoundedView.layer.borderColor = UIColor.red.cgColor
}
else {
whiteRoundedView.layer.borderColor = UIColor.green.cgColor
}
}
Run Code Online (Sandbox Code Playgroud) 我想知道如何实现像Xcode 3用于构建配置的大纲视图:
替代文字http://img812.imageshack.us/img812/9467/xcodeoutlineview.png
当使用带有绑定的NSOutlineView/NSTableView和NSTreeController/NSArrayController时,由于显而易见的原因,视图的列会分配给而不是单个单元格的绑定.如果列中的每一行都使用相同的单元格,那么它就是小菜一碟.但是,如果每一行(可能)使用自己的单元格类型(并且可能使用它自己的绑定集合),那么事情就会变得质朴.
查看屏幕截图,可以清楚地看到文本域单元格只需要一个"值"绑定.虽然弹出按钮单元需要至少一个用于" 内容 ",一个用于" contentValues ",而最后但不是至少一个用于" selectedIndex/selectedObject/selectedValue ".复选框单元格需要绑定" value "和(可能)一个用于" title ".
如何用尽可能干净(和小)的代码来实现这一目标?
(或者有人可能会问: Apple 会如何做到这一点?)
...
这是我到目前为止所尝试的内容:
我通过[outlineView:dataCellForTableColumn:item:]提供适当的(复制的)单元格,并将它们绑定到各个数据模型(来自[item representObject]).我知道大纲视图中显示的确切数据量(<500行),因此每行一个单元格不应该是内存问题太多,不是吗?我通过绑定得到了正确显示的数据(耶!)但是我无法更改任何值.O_o显然,价值变化根本不会通过数据模型.是否还有一个简单的[checkboxCell bind:@"value"toObject:rowModel withKeyPath:@"value"options:nil]?(因为这似乎足以为越来越值,但不是相应地设置它们.)
我找不到有关此主题的任何信息.每列使用自定义单元格的大量信息和提示,但没有在"每行"基础上使用它们的信息和提示.:(
这会为Cocoa教程做一些很棒的东西,不是吗?;)
虽然这是最常见的问题之一,但我找不到一个全面的答案.我需要在UITableView中有自定义单元格.一些包含标签或文本字段,一些包含图像和按钮.我为每种类型的细胞制作了单独的类.我正在使用具有多个部分的GroupStyle表.现在我在cellForIndexPath中添加单元格,其中section为switch-case,if-else为section中的行:
id cell;
switch(indexPath.section) {
case 0:
if(indexPath.row==0) {
CellA *cell = [[[CellA alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Celld%",indexPath.row]] autorelease];
//configure cell
return cell;
}
else if(indexPath.row==1) {
CellB *cell = [[[CellB alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Celld%",indexPath.row]] autorelease];
//configure cell
return cell;
}
break;
case 1:
if(indexPath.row==0) {
CellC *cell = [[[CellC alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[NSString stringWithFormat:@"Celld%",indexPath.row]] autorelease];
//configure cell
return cell;
}
break;
default:
break;
}
return cell;
Run Code Online (Sandbox Code Playgroud)
我也必须在最后返回单元格,因为由于代码块内部的单元格的定义,单元格变得无法识别.为了解决这个问题,我在顶部声明了id的单元格.但我知道这不是正确的方法.如何解决此声明和访问多种类型单元格的问题?
目前有4-5行适合一个屏幕而不需要滚动.所以,我不是在重复使用细胞.但是在编辑时会挤出更多行.在另一个表中,有更多行可以滚动屏幕.这意味着我必须重复使用细胞.所以,我的问题的第二部分是; 如何重用多个自定义单元格?
我正在实现一个功能,其中我的单元格的所有标签都已根据包含每个标签的文本进行了调整.我已经在RayWanderlich教程的帮助下实现了这个功能,并且它适用于iOS 4的iPhone 4s,5和5s.如下图所示,其中显示了带有iOS 8.1的iPhone 5s模拟器
当我用iPhone 6或iPhone 6运行我的应用程序时,我得到了意想不到的行为,如下图所示,显示了iPhone 6模拟器

和iPhone 6 plus模拟器.

我创建了两个自定义单元格nib文件,一个用于iPhone 4,4s,5和5s,第二个用于iPhone 6和6 plus.由于我是自动布局的新手,我设置了两个笔尖相同的约束.我正在下面的图像中显示具有设置约束的自定义单元格nib文件.
iPhone 4,4s,5和5s nib文件快照

iPhone 6和iPhone 6以及自定义单元格nib文件快照

我还使用了以下代码片段,其中单元格已使用动态高度调整大小.该代码适用于iPhone iPhone 4(适用于iOS 7),4s,5和5s(适用于iOS 7和iOS 8和8.1),但不适用于iPhone 6和iPhone 6 plus.
代码片段
- (CGFloat)calculateHeightForConfiguredSizingCell_3:(MemberListTableViewCell_WithoutImage_3_iPhone *)sizingCell {
sizingCell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.tblView.frame), CGRectGetHeight(sizingCell.bounds));
[sizingCell setNeedsLayout];
[sizingCell layoutIfNeeded];
CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
//CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize withHorizontalFittingPriority:UILayoutPriorityDefaultHigh verticalFittingPriority:UILayoutPriorityDefaultHigh];
return size.height + 1.0f; // Add 1.0f for the cell separator height
}
Run Code Online (Sandbox Code Playgroud)
如果我出错了,请给我一个合适的解决方案.我已经浏览了很多东西,但无法正确解决这个问题.你的帮助会很明显.谢谢你.
我有一个自定义单元格的tableView.
我还有一个针对这个custrom单元的.swift文件.
在这个文件中,我有一个函数,它没有发送者:AnyObject输入参数.
如何从此函数调用tableView.reloadData()?
我试图给UIStackView阴影.我的stackview在原型单元中有一些标签和按钮.首先,我在一个绑定到我的自定义单元格的类中使用名称为UIViewBank的stackview的引用:
class CustChatBankCell: UITableViewCell {
@IBOutlet weak var UIViewBank: UIStackView!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我使用的扩展名为:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell:CustChatBankCell = self.tbChat.dequeueReusableCell(withIdentifier: "CustomBankCell") as! CustChatBankCell
cell.UIViewBank.dropShadow()
return cell
}
}
Run Code Online (Sandbox Code Playgroud)
扩展代码:
extension UIStackView {
func dropShadow(scale: Bool = true) {
self.layer.masksToBounds = false
self.layer.shadowColor = …Run Code Online (Sandbox Code Playgroud) custom-cell ×10
swift ×6
uitableview ×6
ios ×5
iphone ×2
autolayout ×1
cocoa ×1
edit ×1
nstableview ×1
reloaddata ×1
shadow ×1
swift3 ×1
tableview ×1
uilabel ×1
uistackview ×1