содержимое не помещается на ярлык пользовательского интерфейса - PullRequest
0 голосов
/ 21 ноября 2018
 -(void) genResultView :(UIScrollView *) scroller  mainView :(float) labelTextSize :(float) textViewTxtSize;
{
    float imageViewW;
    float imageViewH;
    float padding;
    float labelH;
    float labelW;
    float textViewH;
    float textViewW;
    float lineH = 2.0f;
    float lineW;
    float titleFontSize;

    NSString *font = @"Georgia";
    UIColor *fontColour = [UIColor whiteColor];
    //make instances of objects here
    leftCharacterImage = [[UIImageView alloc]init];
    rightCharacterImage = [[UIImageView alloc]init];
    leftNameLabel = [[UILabel alloc]init];
    rightNameLabel = [[UILabel alloc]init];
    leftGenderLabel = [[UILabel alloc]init];
    rightGenderLabel = [[UILabel alloc]init];
    leftPerType = [[UILabel alloc]init];
    rightPerType = [[UILabel alloc]init];
    vsLabel = [[UILabel alloc]init];
    compareText = [[UILabel alloc]init];
    mainView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, scroller.frame.size.width, scroller.frame.size.height)];
    //Set frame & font sizes here
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        padding = 25;
        imageViewH = 90;
        imageViewW = 90;
        textViewH = 250;
        textViewW = 280;
        labelH = 30;
        labelW = 100;
        lineW = 300;
        titleFontSize = 11;


    } else {
        padding = 50;
        imageViewH = 200;
        imageViewW = 200;
        textViewH = 500;
        textViewW = 1000;
        labelH = 30;
        labelW = 200;
        lineW = 700;
        titleFontSize = 20;
    }
    //Set control sizes & locations
    //set imageview frames
    leftCharacterImage.frame = CGRectMake(mainView.frame.size.width/2-imageViewW/2-imageViewW, padding+lineH, imageViewW,imageViewH);
    rightCharacterImage.frame = CGRectMake(mainView.frame.size.width/2-imageViewW/2+imageViewW, padding+lineH,imageViewW ,imageViewH);
    //set label frames & text sizes
    [vsLabel setTextAlignment:NSTextAlignmentJustified];
    [vsLabel setFont:[UIFont fontWithName: @"Georgia-bold" size:titleFontSize]];
    [vsLabel setTextColor:fontColour];
   // vsLabel.numberOfLines = 0;

    leftNameLabel.frame = CGRectMake(mainView.frame.size.width/2-labelW/2-imageViewW, padding + lineH +imageViewH,labelW ,labelH);
    [leftNameLabel setFont:[UIFont fontWithName: font size:labelTextSize]];
    [leftNameLabel setTextColor:fontColour];
    rightNameLabel.frame = CGRectMake(mainView.frame.size.width/2-labelW+imageViewW, padding + lineH + imageViewH,labelW ,labelH);
    [rightNameLabel setFont:[UIFont fontWithName: font size:labelTextSize]];
    [rightNameLabel setTextColor:fontColour];
    leftGenderLabel.frame = CGRectMake(mainView.frame.size.width/2-labelW/2-imageViewW, padding + lineH + imageViewH + labelH,labelW ,labelH);
    [leftGenderLabel setFont:[UIFont fontWithName: font size:labelTextSize]];
    [leftGenderLabel setTextColor:fontColour];
    rightGenderLabel.frame = CGRectMake(mainView.frame.size.width/2-labelW+imageViewW, padding + lineH + imageViewH + labelH ,labelW ,labelH);
    [rightGenderLabel setFont:[UIFont fontWithName: font size:labelTextSize]];
    [rightGenderLabel setTextColor:fontColour];
    leftPerType.frame = CGRectMake(mainView.frame.size.width/2-labelW/2-imageViewW, padding + lineH + imageViewH + labelH + labelH,labelW ,labelH);
    [leftPerType setFont:[UIFont fontWithName: font size:labelTextSize]];
    [leftPerType setTextColor:fontColour];
    rightPerType.frame = CGRectMake(mainView.frame.size.width/2-labelW+imageViewW, padding + lineH + imageViewH + labelH * 2,labelW ,labelH);
    [rightPerType setFont:[UIFont fontWithName: font size:labelTextSize]];
    [rightPerType setTextColor:fontColour];

    line2 = [[UIImageView alloc]init];
    line2.frame = CGRectMake(mainView.frame.size.width/2-lineW/2, padding + lineH + imageViewH + labelH * 3 + 10, lineW,lineH);
    [line2 setBackgroundColor:[UIColor whiteColor]];
    [mainView addSubview:line2];

    vsLabel.frame = CGRectMake(mainView.frame.size.width/2-labelW/2-imageViewW, padding + lineH + imageViewH + labelH * 3 + 25,(imageViewW + labelW *2)+10,labelH);

    //set text view frame

    compareText.frame = CGRectMake(mainView.frame.size.width/2-labelW/2-imageViewW, padding + imageViewH + labelH * 3 + vsLabel.frame.size.height + 50,textViewW ,textViewH);
    [compareText setFont:[UIFont fontWithName: font size:textViewTxtSize]];
    //
    [compareText setTextColor:fontColour];
    [compareText setBackgroundColor:[UIColor clearColor]];
    compareText.numberOfLines = 0;
    //add to mainview
    [mainView addSubview:leftCharacterImage];
    [mainView addSubview:rightCharacterImage];
    [mainView addSubview:vsLabel];
    [mainView addSubview:leftNameLabel];
    [mainView addSubview:rightNameLabel];
    [mainView addSubview:leftGenderLabel];
    [mainView addSubview:rightGenderLabel];
    [mainView addSubview:leftPerType];
    [mainView addSubview:rightPerType];
    [mainView addSubview:compareText];
    //call compareResult

    [self genCompareResult];


    [tfcompareDescription boldHeadings:compareDescription :[UIFont fontWithName:@"Georgia-bold" size:20.0] :[UIFont fontWithName:@"Georgia" size:10.0]:compareText :tfcompareDescription.listOfRanges];
    [compareText setTextAlignment:NSTextAlignmentJustified];
    [vsLabel setText:[NSString stringWithFormat:@"Tips for %@ and %@ to work together more effectively:",characterType1,characterType2]];
    [compareText sizeToFit];
    [vsLabel sizeToFit];

    mainView.frame = CGRectMake(mainView.frame.origin.x,mainView.frame.origin.y,mainView.frame.size.width,padding*5 + lineH + labelH*3 + compareText.frame.size.height+imageViewH);

    [scroller addSubview:mainView];
}

Я просто хочу показать некоторые данные на UILabel, когда код, который он запускает, выглядит так. Я просто хочу, чтобы данные соответствовали метке пользовательского интерфейса независимо от устройства.Что я хочу сделать, так это просто сохранить постоянную линию шрифта и изменить размер этикетки в соответствии с номером строки в описании

введите описание изображения здесь

1 Ответ

0 голосов
/ 23 ноября 2018

about "mainView.frame = CGRectMake (mainView.frame.origin.x, mainView.frame.origin.y, mainView.frame.size.width, отступы * 5 + lineH + labelH * 3 + compareText.frame.size.height + imageViewH); "

Вы сначала запускаете mainView.frame?

Вы можете распечатать mainView.frame.origin и mainView.frame.size, чтобы убедиться, что они включены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...