分组的 UITableView 中的中心页脚 UILabel - Swift
Center footer UILabel in grouped UITableView - Swift
我目前正在向我的应用程序添加一个信息页面,并希望在分组的 UITableView 的页脚中心显示应用程序的版本号。我有它显示,但我不确定如何将它居中。
我看过使用 tableviews viewForFooterInSection;这是前进的正确方法,还是有更简单的方法?
非常感谢。
嗯,您的想法很好,此代码示例将帮助您正确完成它。
- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
static UIView *footerView;
if (footerView != nil)
return footerView;
NSString *footerText = NSLocalizedString(@"Some Display Text Key", nil);
// set the container width to a known value so that we can center a label in it
// it will get resized by the tableview since we set autoresizeflags
float footerWidth = 150.0f;
float padding = 10.0f; // an arbitrary amount to center the label in the container
footerView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, footerWidth, 44.0f)];
footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// create the label centered in the container, then set the appropriate autoresize mask
UILabel *footerLabel = [[[UILabel alloc] initWithFrame:CGRectMake(padding, 0, footerWidth - 2.0f * padding, 44.0f)] autorelease];
footerLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
footerLabel.textAlignment = UITextAlignmentCenter;
footerLabel.text = footerText;
[footerView addSubview:footerLabel];
return footerView;
}
只需在您的 tableView 中添加一个页脚,无论您有多少部分,它都会放在底部
let tableViewFooter = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 50))
tableViewFooter.backgroundColor = UIColor.greenColor()
let version = UILabel(frame: CGRectMake(8, 15, tableView.frame.width, 30))
version.font = version.font.fontWithSize(14)
version.text = "Version 1.x"
version.textColor = UIColor.lightGrayColor()
version.textAlignment = .Center;
tableViewFooter.addSubview(version)
tableView.tableFooterView = tableViewFooter
如果要为每个部分添加页脚
在您的 tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView
中创建一个 UIView()
?方法并将标签添加到该视图并将标签置于其中居中。
示例:
func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
let version = UILabel(frame: CGRectMake(8, 15, tableView.frame.width, 30))
version.font = version.font.fontWithSize(14)
version.text = "Version 1.x"
version.textColor = UIColor.lightGrayColor()
version.textAlignment = .Center;
view.addSubview(version)
return view
}
我目前正在向我的应用程序添加一个信息页面,并希望在分组的 UITableView 的页脚中心显示应用程序的版本号。我有它显示,但我不确定如何将它居中。
我看过使用 tableviews viewForFooterInSection;这是前进的正确方法,还是有更简单的方法?
非常感谢。
嗯,您的想法很好,此代码示例将帮助您正确完成它。
- (UIView *) tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
static UIView *footerView;
if (footerView != nil)
return footerView;
NSString *footerText = NSLocalizedString(@"Some Display Text Key", nil);
// set the container width to a known value so that we can center a label in it
// it will get resized by the tableview since we set autoresizeflags
float footerWidth = 150.0f;
float padding = 10.0f; // an arbitrary amount to center the label in the container
footerView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, footerWidth, 44.0f)];
footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
// create the label centered in the container, then set the appropriate autoresize mask
UILabel *footerLabel = [[[UILabel alloc] initWithFrame:CGRectMake(padding, 0, footerWidth - 2.0f * padding, 44.0f)] autorelease];
footerLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
footerLabel.textAlignment = UITextAlignmentCenter;
footerLabel.text = footerText;
[footerView addSubview:footerLabel];
return footerView;
}
只需在您的 tableView 中添加一个页脚,无论您有多少部分,它都会放在底部
let tableViewFooter = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 50))
tableViewFooter.backgroundColor = UIColor.greenColor()
let version = UILabel(frame: CGRectMake(8, 15, tableView.frame.width, 30))
version.font = version.font.fontWithSize(14)
version.text = "Version 1.x"
version.textColor = UIColor.lightGrayColor()
version.textAlignment = .Center;
tableViewFooter.addSubview(version)
tableView.tableFooterView = tableViewFooter
如果要为每个部分添加页脚
在您的 tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView
中创建一个 UIView()
?方法并将标签添加到该视图并将标签置于其中居中。
示例:
func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
let version = UILabel(frame: CGRectMake(8, 15, tableView.frame.width, 30))
version.font = version.font.fontWithSize(14)
version.text = "Version 1.x"
version.textColor = UIColor.lightGrayColor()
version.textAlignment = .Center;
view.addSubview(version)
return view
}