Ios 在自定义UITableViewCell中链接为IBOutlet时,自定义UIButton将消失
我创建了一个名为Ios 在自定义UITableViewCell中链接为IBOutlet时,自定义UIButton将消失,ios,iphone,objective-c,ipad,Ios,Iphone,Objective C,Ipad,我创建了一个名为SellerMobileTableViewCell的自定义表格视图单元格,该单元格将卖家的手机号码显示为标签,并显示SMS和Call round rect按钮: 该单元格没有自己的XIB文件——它是UITableView中的原型单元格,自定义类设置为SellerMobilableViewCellSellerMobileTableViewCell包含两个按钮,即IBOutlets类型的ContactButton。在interface builder中,我已经将按钮设置为Conta
SellerMobileTableViewCell
的自定义表格视图单元格,该单元格将卖家的手机号码显示为标签,并显示SMS和Call round rect按钮:
该单元格没有自己的XIB文件——它是UITableView
中的原型单元格,自定义类设置为SellerMobilableViewCell
SellerMobileTableViewCell
包含两个按钮,即IBOutlet
s类型的ContactButton
。在interface builder中,我已经将按钮设置为ContactButton
,作为其自定义类
#import <UIKit/UIKit.h>
#import "ContactButton.h"
@interface SellerMobileTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UILabel *numberLabel;
@property (weak, nonatomic) IBOutlet ContactButton *SMSButton;
@property (weak, nonatomic) IBOutlet ContactButton *callButton;
@end
#导入
#导入“ContactButton.h”
@接口SellerMobileTableViewCell:UITableViewCell
@属性(弱,非原子)IBUILabel*numberLabel;
@属性(弱、非原子)IBOutlet ContactButton*SMSButton;
@属性(弱,非原子)IBOutlet ContactButton*callButton;
@结束
问题是:当我没有通过Ctrl键单击并拖动到IBOutlet
s将这两个自定义按钮连接到SellerMobileTableViewCell.h
时,应用程序中会出现这两个自定义按钮。然而,当我这样做的时候,正如我应该做的那样,它们根本没有出现
我不明白为什么会这样。帮助?您是否在XIB文件中设置了
UITableView
委托和数据源,并在头文件中设置了协议
@interface MerchantListController : UITableViewController <UITableViewDelegate, UITableViewDataSource>
我个人觉得这算不上是一个“好”的答案,但它现在起作用了,我也没有做太多不同的事情 首先,我试着接受文的建议。即使我没有在文件中的任何地方隐藏
IBOutlet
,为了安全起见,我还是决定在SellerMobileTableViewCell.m中将其设置为NO
:
#import "SellerMobileTableViewCell.h"
@implementation SellerMobileTableViewCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
self.SMSButton.hidden = NO;
return self;
}
// ...
@end
然后,我还删除了在SellerMobileTableViewCell.m
中自动创建的以下方法:
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
}
但是,我再次删除了行self.SMSButton.hidden=NO
,并放回setSelected:
方法,它仍然有效。简言之,我把一切都放回原处。我真的不明白这个错误
这可能是一个Xcode错误吗?自从我添加了自定义图像,并将其设置为自定义按钮的背景后,我第一次经历了奇怪的事情。我有一个CopyPNGFile错误
s,如果你搜索一下,这是最奇怪的Xcode错误之一,可以通过将PNG文件保存为非交错文件来解决。然而,我只是在Issue Navigator中丢失了这个错误,没有对图像本身做任何处理——我只是删除并重新添加了文件。您使用的是autoLayout吗?如果没有,请尝试。是的,我正在使用Autolayout。您好,持有表视图的视图控制器实际上是一个UITableViewController
。这些都是自动设置的。好的,您是否设置了UITableView
协议和所需的委托方法?您还设置了单元格标识符吗?当文件的所有者是UITableViewController
时,我不必自己将其设置为代理和数据源(两个协议)。我还设置了单元格标识符。
- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];
}