我试图让一个UILabel到一个UIScrollView内滚动,但它不滚动(I'm tryi

2019-09-19 00:23发布

这是我的.m

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.scrollView addSubview:self.contentView];
    self.scrollView.contentSize = self.contentView.bounds.size;
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

    NSMutableArray *arr = [[NSMutableArray alloc]init];
    arr = [Singleton getArray];

    NSString *str = [arr componentsJoinedByString:@"\n"];
    summaryLabel.text = str;
}

这是我的.h

@interface TotalViewController : UIViewController
{
    UIScrollView *scrollView;
    UIView *contentView;

}
@property (nonatomic, retain) IBOutlet UIScrollView * scrollView;
@property (nonatomic, retain) IBOutlet UIView       * contentView;
@property (nonatomic,strong) IBOutlet UILabel       * summaryLabel;

我的标签连接到视图控制器,我的内容查看连接到视图控制器,和我的summaryLabel连接到视图控制器。 我需要的标签滚动和事实并非如此。

Answer 1:

一个非常简单的答案,如果你只想要一个可以滚动的标签,是使用UITextView的,而不是( 参考 )。 禁用编辑,你会得到一个滚动的标签。

(来自几乎一字不差: 如何将滚动功能添加到一个UILabel )



Answer 2:

如果它的内容比它的可视面积不大于UIScrollView的不会滚动。 考虑到你指定的文本标签你已经设置了滚动的contentSize后,这是不可能的,这是正确的事情。 我会尝试这样的事情...

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.scrollView addSubview:summaryLabel];

    .....

    summaryLabel.text = str;

    // Assuming your label has numberOfLines = 0, and you want to scroll vertical
    CGSize maxSize = CGSizeMake(summaryLabel.frame.size.width, CGFLOAT_MAX);
    CGSize labelSize = [summaryLabel sizeThatFits:maxSize];
    scrollview.contentSize = labelSize;
}


文章来源: I'm trying to get a UILabel to scroll inside of a UIScrollView but it doesnt scroll