6

这是在我的 .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;

我的 Label 连接到 View Controller,我的 contentView 连接到 View Controller,我的 summaryLabel 连接到 View Controller。我需要标签滚动,但它不是。

4

2 回答 2

28

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

(几乎一字不差地摘自:如何向 UILabel 添加滚动功能

于 2012-07-02T23:12:11.800 回答
11

如果 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;
}
于 2012-07-02T23:26:53.307 回答