在屏幕外滑动时,UITableViewCell中的按钮不可见
我制作了一个自定义的在屏幕外滑动时,UITableViewCell中的按钮不可见,uitableview,Uitableview,我制作了一个自定义的UITableViewCell,除了在屏幕外滑动单元格时按钮变为不可见外,它工作正常: 当我切换到另一个视图并返回时,按钮再次可见: . 按钮仍然存在,可以点击以调用该过程,但文本似乎变为零。 知道为什么吗 守则: 设置查看控制器.h #import <UIKit/UIKit.h> @interface SettingsViewController : UIViewController <UITableViewDelegate, UITableVi
UITableViewCell
,除了在屏幕外滑动单元格时按钮变为不可见外,它工作正常:
当我切换到另一个视图并返回时,按钮再次可见:
.
按钮仍然存在,可以点击以调用该过程,但文本似乎变为零。
知道为什么吗
守则:
设置查看控制器.h
#import <UIKit/UIKit.h>
@interface SettingsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UITableView *settingsTable;
@end
#import <UIKit/UIKit.h>
@interface MyCellClass : UITableViewCell
@property (weak, nonatomic) IBOutlet UIButton *button;
@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@end
MyCellClass.h
#import <UIKit/UIKit.h>
@interface SettingsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) IBOutlet UITableView *settingsTable;
@end
#import <UIKit/UIKit.h>
@interface MyCellClass : UITableViewCell
@property (weak, nonatomic) IBOutlet UIButton *button;
@property (weak, nonatomic) IBOutlet UILabel *textLabel;
@end
这是我看到带有按钮的自定义单元格时:
<MyCellClass: 0xa7cf1b0; baseClass = UITableViewCell; frame = (0 55; 320 44); text = 'Logged in as 1'; autoresize = W; layer = <CALayer: 0xa7cf380>>
| <UITableViewCellScrollView: 0xa7bc3c0; frame = (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0xa7bc650>; layer = <CALayer: 0xa7bc590>; contentOffset: {0, 0}>
| | <UITableViewCellContentView: 0xa7cf470; frame = (0 0; 320 44); opaque = NO; gestureRecognizers = <NSArray: 0xa7be530>; layer = <CALayer: 0xa7bbdf0>>
| | | <UIButton: 0xa7bbe20; frame = (217 5; 83 33); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xa7bbf10>>
| | | <UILabel: 0xa7bbf40; frame = (15 17; 199 21); text = 'Logged in as 1'; clipsToBounds = YES; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xa772f80>>
|
| |
| | |
| | |
这是当我在刷卡后看到标准UITableViewCell没有按钮时:
<MyCellClass: 0xa7cf1b0; baseClass = UITableViewCell; frame = (0 55; 320 44); text = 'Logged in as 1'; autoresize = W; layer = <CALayer: 0xa7cf380>>
| <UITableViewCellScrollView: 0xa7bc3c0; frame = (0 0; 320 44); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0xa7bc650>; layer = <CALayer: 0xa7bc590>; contentOffset: {0, 0}>
| | <UITableViewCellContentView: 0xa7cf470; frame = (0 0; 320 43.5); opaque = NO; gestureRecognizers = <NSArray: 0xa7be530>; layer = <CALayer: 0xa7bbdf0>>
| | | <UIButton: 0xa7bbe20; frame = (217 5; 83 33); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xa7bbf10>>
| | | | <UIButtonLabel: 0xa897150; frame = (29 6; 54 21); text = 'Logout'; clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xa896860>>
| | | <UILabel: 0xa7bbf40; frame = (15 17; 199 21); text = 'Logged in as 1'; clipsToBounds = YES; autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xa772f80>>
| | <_UITableViewCellSeparatorView: 0xa88e8b0; frame = (0 43.5; 320 0.5); layer = <CALayer: 0xa8717d0>>
| | <_UITableViewCellSeparatorView: 0xa8780b0; frame = (0 0; 320 0.5); layer = <CALayer: 0xa882550>>
|
| |
| | |
| | | |
| | |
| |
| |
原因是我将自定义单元格的@properties设置为“弱”而不是“强”:
所以我把它改成了“strong”:
然后我看到两个文本相互重叠。原因是我将文本标签命名为textlab
,它与UITableViewCell
中的文本标签同名。所以我基本上用相同的文本填充了两个文本标签,我注意到只有按钮消失了,但实际上是整个自定义单元格类消失了
因此,我还更改了酒店名称,效果很好:
@interface MyCustomCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIButton *buttonRight;
@property (strong, nonatomic) IBOutlet UILabel *labelLeft;
@end
显示您的表委托/数据源方法的代码Hanks Wain,添加了代码。因此,
MyCellClass
中的内容实际上与表代码无关。(另外,您什么时候创建\u cell*
数组?我想只是没有显示?)实现tableView:willDisplayCell:forrowatinexpath:
并在it日志中NSLog(@“%@:\n%@”,indexath,[cell recursiveDescription])
一个(0 480;0 0)
的框架没有宽度或高度,因此不是很有用[(id)cell recursiveDescription]
可能有效(通常使用po[cell recursiveDescription]
而不是在代码中)
@interface MyCustomCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIButton *buttonRight;
@property (strong, nonatomic) IBOutlet UILabel *textLabel;
@end
@interface MyCustomCell : UITableViewCell
@property (strong, nonatomic) IBOutlet UIButton *buttonRight;
@property (strong, nonatomic) IBOutlet UILabel *labelLeft;
@end