我正在实现一个页脚视图,它是一个UIView,它里面有一个标签。我想要它,以便UILabel始终保持在中心,但它不会。这是我的代码:
- (void)setupFooterView
{
UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.scrollView_.frameWidth, kFooterViewHeight)];
[footerView setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth];
[footerView setBackgroundColor:[UIColor clearColor]];
UILabel *loadMoreLabel = [[UILabel alloc] initWithFrame:CGRectZero];
[loadMoreLabel setBackgroundColor:[UIColor clearColor]];
[loadMoreLabel setFont:[UIFont fontWithName:kProximaNova size:16]];
[loadMoreLabel setTextColor:[UIColor whiteColor]];
[loadMoreLabel setLineBreakMode:UILineBreakModeTailTruncation];
CGSize desiredSize = [[PNRConstants kLoadingMore] sizeWithFont:loadMoreLabel.font constrainedToSize:CGSizeMake(footerView.frameWidth, footerView.frameHeight) lineBreakMode:loadMoreLabel.lineBreakMode];
[loadMoreLabel setFrameSize:desiredSize];
[loadMoreLabel setCenter:CGPointMake(footerView.frameWidth/2, footerView.frameHeight/2)];
self.loadingMoreLabel_ = loadMoreLabel;
[footerView addSubview:self.loadingMoreLabel_];
[loadMoreLabel release];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
[spinner setBackgroundColor:[UIColor clearColor]];
[spinner setFrameX:self.loadingMoreLabel_.frameX - spinner.frameWidth - 10];
[spinner setFrameY:self.loadingMoreLabel_.frameY];
self.spinner_ = spinner;
[footerView addSubview:self.spinner_];
[spinner release];
[self.scrollView_ setFooterView_:footerView];
[footerView release];
}
我在这里做错了什么?
答案 0 :(得分:1)
[loadMoreLabel setCenter:CGPointMake(footerView.frameWidth/2, footerView.frameHeight/2)];
footerView.frameWidth / 2需要
footerView.frameWidth/2 - loadMoreLabel.frame.size.width/2
这是因为标签的锚点位于左上角而不是中心。为此,您可以减去标签宽度的一半。
答案 1 :(得分:0)
设置标签的框架后:[yourLabel setCenter: yourFooter.center];
答案 2 :(得分:0)
正确的方法:使用笔尖,设置调整大小面具并将其称为一天。
痛苦的方式:以编程方式创建标签。 然后有几个选择: - 使标签与页脚一样宽,并将其文本对齐到中心。 - 将标签的中心属性设置为footer.frame.width / 2和footer.frame.height / 2
编辑:哦,你已经好了。将yourlabel的text align属性设置为center。