2016-12-16 4 views
1

私は小さな問題を抱えています。私はそれを解決するのを助けてくれることを願っています...ネットを検索していくつか試みましたが、私は問題を解決できませんでした。Forループ内の制約スクロールUILabel

私は今、私の問題は、プログラムの制約を挿入する方法です...あなたは私が下の投稿のコードから見ることができるように、アレイによって得られたラベルの指定された数を果たしているFORループ

を作成しました。私はラベルと他のもの(水平)との間に特定のスペースがあることが必要です。

例:私は4にラベルを付ける場合

私は横のスペースは、iPhoneのディスプレイSEの両方iPhone 7 Plusであるの周りに、これらはかかるだろうたい..

だから私の質問は、私は、特定の設定はどうすればよいです各ラベル間のスペースとFORループのパス?これを研究する

CGFloat padding = 0; 

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"INFO UNIVERSITARIE",@"INFO GENERALI", @"TROVA SEDI", nil]; 

for (NSInteger i = 0; i < array.count; i ++) { 

    NSString *valueText = [array objectAtIndex:i]; 

    UILabel *label = [[UILabel alloc] init]; 
    label.frame = CGRectMake(padding *i, 0, 50, 30); 
    label.text = [NSString stringWithFormat:@"%@", valueText]; 
    label.textColor = [UIColor whiteColor]; 
    label.font = [UIFont fontWithName:@"HelveticaNeue" size:12]; 
    [label sizeToFit]; 

    [_baseView addSubview:label]; 

    padding = label.frame.size.width; 

    label.translatesAutoresizingMaskIntoConstraints = NO; 
} 
+0

"ripercuoterlo"とは何ですか? – danh

+0

翻訳者が間違っていました。申し訳ありませんripercuoterlo = pass – kAiN

+0

簡単な計算でレイアウトを行うことはできますか?自動機能はコードのはるかに複雑ですが、回転などの作業を行います – danh

答えて

0

、私はUIStackViewは、この問題のために特別に設計された、私たちの新しい友人であることを思い出しました。

NSArray *array = @[ @"INFO UNIVERSITARIE",@"INFO GENERALI", @"TROVA SEDI" ]; 
    NSMutableArray *labels = [NSMutableArray array]; 

    for (NSString *string in array) { 
     UILabel *label = [[UILabel alloc] init]; 
     label.text = string; 
     [labels addObject:label]; 
    } 

    UIStackView *stackView = [[UIStackView alloc] initWithArrangedSubviews:labels]; 
    stackView.axis = UILayoutConstraintAxisHorizontal; 
    stackView.spacing = 12.0; 
    stackView.frame = self.view.bounds; 
    [self.view addSubview:stackView]; 

このコードを試してみましたが、うまくいきました。