如何在UITableViewCell的中添加向右箭头和箭头前的文本

如何在UITableViewCell的中添加向右箭头和箭头前的文本,第1张

1.首先说的是添加向右的箭头,这个很简单,只要在cellForRowAtIndexPath:方法中执行以下代码:

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator

这样就可以达到添加向右箭头的效果了,其实还有其他几个样式,也是可以在cell的右侧添加一些图案的,这个自己打一半看补全再试试就知道了。

2.添加完箭头以后,若还想在箭头前面添加文字,则需要在cellForRowAtIndexPath:执行以下代码:

cell.detailTextLabel.text = @"mona"

如果你执行之后可以看到箭头前有文字出现的话,那么恭喜你,你是幸运的。我就没那么幸运,改了很多次之后都cell右侧都没有显示过文字出来,后来就根据这个情况,找了很久都没找到相应的解决方法。后来在一段demo中才知道,原来要在右侧显示出detailTextLabel的文字,还需要在cellForRowAtIndexPath:中把cell的类型设置为

UITableViewCellStyleValue1,cellForRowAtIndexPath:的整段代码如下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"formCell"] if (cell == nil) {cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"formCell"] cell.textLabel.text = @"monalisa" }cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator cell.detailTextLabel.text = @"mona"

转载,仅供参考,祝你愉快,满意请采纳。

在tableViewCell的contentView 上添加一个view,通过这个view设置间距,所有内容都放到这个view 上

缺点:

如果存在左滑删除,左滑删除按钮的高度是整个cell的高度,看起来和cell内容高度不匹配

比如tableview有10条数据,就设置为10个section,设置section的headerview footerview的高度来实现cell间距,但这种方式只能设置上下间距

缺点:

1.只能设置上下间距

2.如果section headerView或footerView有内容时,此时就无法实现cell间距

缺点:

对于UICollectionView,系统没有相关提供方法来实现左滑删除,需要自定义。较为复杂

通过调整cell的frame,来实现cell的间距

缺点:

左滑删除时,cell滑动到最右端松手,会有一点卡顿,再回d到正确的位置

参考文章:

https://www.jianshu.com/p/940872e17ac7

UITableViewCell类能够显示出各种各样的风格,但有时候我们需要适应不同的显示模式下的显示。今天的文章中,我们将使用table view去显示一系列自定义的cell。

启动Xcode,选择"Create a new Xcode project",然后选择空应用程序模板,点击Next。命名为 CustomCells,然后照下图那样设置。

点击Next,选择项目的存放路径,最后点击Create。

这里需要添加两个文件,UITableViewController以及custom cell对应的xib文件。

Choose File | New >File ,然后添加一个名为 TableViewController 的UITableViewController。

如图:

对于这个controller,我们并不需要xib文件,所以直接点击Next创建。

重新创建文件,这次我们是创建一个空的 xib 文件,如下图:

点击Next,确保Device Family被设置为iPad,再点击Next,在默认路径下保存为 CellNib 文件。

接着打开 CellNib.xib 文件。在上面拖放几个 label:

这里第一个Label的字体大小是27,字体是System Italic。而其他的Label全部都是默认设置。

下一步就是为文本依然是"Label"的Label设置tag。

将第一个大字体的Label设置tag=1,然后设置Address1,Address2,Phone,Cell右边的Label的tag分别为2,3,4,5。

接着需要修改xib的File's Owner的所属类。这里选择为 TableViewController。

打开 TableViewController.h 然后添加这些属性:

#import <uikit uikit.h=""><span class="referer">@interface</span>TableViewController : UITableViewController

@property (nonatomic, strong) NSArray *cellContent

@property (nonatomic, strong) IBOutlet UITableViewCell *customCell<span class="referer">@end</span></uikit>

这个演示中,我们定义一个数组来记录所有cell的内容,还需要如下图那样,设置设置好 customCell的outlet。

现在打开TableViewController.m做出如下更改:

#import "TableViewController.h"<span class="referer">@interface</span>TableViewController ()<span class="referer">@end</span>

@implementation TableViewController

@synthesize cellContent, customCell

- (NSArray *)cellContent

{

cellContent = [[NSArray alloc] initWithObjects:

[NSArray arrayWithObjects:@"Alex Ander",

@"213 4th St.", @"Apt. 17", @"555-555-5555", @"111-111-1111", nil],

[NSArray arrayWithObjects:@"Jane Doe",

@"4 Any Ave.", @"Suite 2", @"123-456-7890", @"098-765-4321", nil],

[NSArray arrayWithObjects:@"Bill Smith",

@"63 Smith Dr.", @"", @"678-765-1236", @"987-234-4987", nil],

[NSArray arrayWithObjects:@"Mike Taylor",

@"3145 Happy Ct.", @"", @"654-321-9871", @"654-385-1594", nil],

[NSArray arrayWithObjects:@"Nancy Young",

@"98 W. 98th St.", @"Apt. 3", @"951-753-9871", @"951-654-3557", nil],

nil]

return cellContent

}

- (id)initWithStyle:(UITableViewStyle)style

{

self = [super initWithStyle:style]

if (self) {

// Custom initialization

}

return self

}

- (void)viewDidLoad

{

[super viewDidLoad]

// Uncomment the following line to preserve selection between presentations.

// self.clearsSelectionOnViewWillAppear = NO

// Uncomment the following line to display an Edit button in the navigation bar for this view controller.

// self.navigationItem.rightBarButtonItem = self.editButtonItem

}

- (void)viewDidUnload

{

[super viewDidUnload]

// Release any retained subviews of the main view.

// e.g. self.myOutlet = nil

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

return YES

}

#pragma mark – Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

// Return the number of sections.

return 1

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{

// Return the number of rows in the section.

return [[self.cellContent objectAtIndex:0] count]

}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

return 149.0f

}

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

{

cell.backgroundColor = [UIColor colorWithRed:1 green:1 blue:.75 alpha:1]

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @"Cell"

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]

if (cell == nil) {

[[NSBundle mainBundle] loadNibNamed:@"CellNib" owner:self options:nil]

cell = self.customCell

self.customCell = nil

}

// Configure the cell…

UILabel *textTarget

textTarget = (UILabel *)[cell viewWithTag:1]//name

textTarget.text = [[self.cellContent objectAtIndex:indexPath.row] objectAtIndex:0]

textTarget = (UILabel *)[cell viewWithTag:2]//addr1

textTarget.text = [[self.cellContent objectAtIndex:indexPath.row] objectAtIndex:1]

textTarget = (UILabel *)[cell viewWithTag:3]//addr2

textTarget.text = [[self.cellContent objectAtIndex:indexPath.row] objectAtIndex:2]

textTarget = (UILabel *)[cell viewWithTag:4]//phone

textTarget.text = [[self.cellContent objectAtIndex:indexPath.row] objectAtIndex:3]

textTarget = (UILabel *)[cell viewWithTag:5]//cellPhone

textTarget.text = [[self.cellContent objectAtIndex:indexPath.row] objectAtIndex:4]

return cell

}

#pragma mark – Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

// Navigation logic may go here. Create and push another view controller.

/*

<#DetailViewController#>*detailViewController = [[<#DetailViewController#>alloc] initWithNibName:@"<#Nib name#>" bundle:nil]

// …

// Pass the selected object to the new view controller.

[self.navigationController pushViewController:detailViewController animated:YES]

*/

}<span class="referer">@end</span>#import <uikit uikit.h="">

#import "TableViewController.h"<span class="referer">@interface</span>AppDelegate : UIResponder <uiapplicationdelegate>@property (strong, nonatomic) UIWindow *window

@property (strong, nonatomic) TableViewController *tableViewController

@property (strong, nonatomic) UINavigationController *navController<span class="referer">@end</span></uiapplicationdelegate></uikit>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]

// Override point for customization after application launch.

self.tableViewController = [[TableViewController alloc] initWithStyle:UITableViewStylePlain]

self.tableViewController.title = @"Table View"

self.navController = [[UINavigationController alloc]

initWithRootViewController:self.tableViewController]

[self.window addSubview:self.navController.view]

[self.window makeKeyAndVisible]

return YES

OK,现在运行程序,特别注意一下tableViewController的默认cell已经被我们的自定义 cell 替代。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11201700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存