滚动uilabel与视图iOS时,保持标签文本与屏幕对齐?

时间:2015-02-16 10:34:44

标签: ios objective-c xcode6

我有一个UITableView和10个部分。 对于每个部分,我都有一个自定义标题。

在自定义标题中,我有一个标签作为带有文本值日期的部分的标题。

表格内容大小为(450,1000)

这里我带有文字的标签也是滚动的,但我希望我的标签文字应该与屏幕中心对齐,不应该用表格水平滚动。

提前致谢。

3 个答案:

答案 0 :(得分:1)

在敲了几个小时之后我终于得到了这个解决方案。

我只是用过

(void)scrollViewDidScroll:(UIScrollView *)scrollView*

方法和使用 表视图内容偏移更改了我的标签框

myLabel.frame = CGRectMake(tableview.contentoffset.x, 0, deviceHeight, 27);

它会将我的标签保持在相同的位置以进行屏幕显示,从逻辑上看它正在变化,但在同一位置看起来会保持稳定。

答案 1 :(得分:0)

只有当表的UITableViewStyle属性设置为UITableViewStylePlain时,该行为才会发生。如果将它设置为UITableViewStyleGrouped,则标题将向上滚动单元格。

可能以下链接将帮助您解决问题: 1. UITableView with fixed section headers 2. https://corecocoa.wordpress.com/2011/09/17/how-to-disable-floating-header-in-uitableview/

答案 2 :(得分:0)

    - (void)addButtonsOnScrollViewHorizontal:(int)postion :(UIScrollView*)scrollView
    {
        [scrollView setShowsVerticalScrollIndicator:NO];
        float x = 30;
        for (int i = 1; i <=postion; i++)
        {
            UIButton *button= [UIButton buttonWithType:UIButtonTypeCustom];
            [button setTag:i];
            [button setTitle:[NSString stringWithFormat:@"%i",i] forState:UIControlStateNormal];
            [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
            [button setTitleColor:[UIColor colorWithRed:26.0f/255.0f green:188.0f/255.0f blue:156.0f/255.0f alpha:100.0f] forState:UIControlStateSelected];
            button.titleLabel.font =[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0f];
            CGSize maxSize = CGSizeMake(button.frame.size.width, FLT_MAX);
            CGRect labRect = [button.titleLabel.text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:button.titleLabel.font} context:nil];
            [button setFrame:CGRectMake(x, 0, labRect.size.width+10, 30)];
            [button addTarget:self action:@selector(scrollViewDaysbtnClicked:) forControlEvents:UIControlEventTouchUpInside];
            if (i==postion)
            {
                [_scrollViewDays setContentOffset:CGPointMake (button.frame.origin.x+button.frame.size.width/2-70, 0) animated:NO];
                button.titleLabel.font =[UIFont fontWithName:@"HelveticaNeue-Bold" size:24.0f];
                [button setSelected:YES];
                currentSelectionDays =i;
            }
            [scrollView addSubview:button];
            x +=labRect.size.width+20;
        }
        scrollView .contentSize = CGSizeMake(x, 0);
    }


-(void)scrollViewDaysbtnClicked:(UIButton*)sender
{

    for (UIButton *button in _scrollViewDays.subviews)
    {
        if ([button isKindOfClass:[UIButton class]])
        {
            if (button.tag == sender.tag)
            {
                [_scrollViewDays setContentOffset:CGPointMake (button.frame.origin.x+button.frame.size.width/2-70, 0) animated:NO];
                button.titleLabel.font =[UIFont fontWithName:@"HelveticaNeue-Bold" size:24.0f];
                [button setSelected:YES];
                currentSelectionDays =(int)sender.tag;
            }else
            {
                [button setSelected:NO];
                button.titleLabel.font =[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0f];
            }
        }
    }
}

使用它......