簡體   English   中英

對齊UILabel以居中於UIView

[英]align UILabel to be centered on UIView

我正在實現一個頁腳視圖,它是一個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];
}

我在這里做錯了什么?

[loadMoreLabel setCenter:CGPointMake(footerView.frameWidth/2, footerView.frameHeight/2)];

footerView.frameWidth / 2需要為

footerView.frameWidth/2 - loadMoreLabel.frame.size.width/2

這是因為標簽的錨點位於左上角而不是中心。 您減去標簽寬度的一半即可解決此問題。

設置標簽的框架后: [yourLabel setCenter: yourFooter.center];

正確的方法:使用筆尖,設置調整大小的蒙版並命名為“ day”。

痛苦的方式:以編程方式創建標簽。 然后有幾個選擇:-使標簽與頁腳一樣寬,並將其文本設置為居中對齊。 -將標簽的center屬性設置為footer.frame.width / 2和footer.frame.height / 2

編輯:哦,你已經知道了。 將yournlabel的文本對齊屬性設置為center。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM