-1

I need a solution for the problem described below..

I have a scenario where a view needs to be shown only on ipad but it needs to be hidden on iphone. The way the view is built is as follows:

The below code shows the view on ipad. I want to hide this view when loaded on iphone.

How can this be achieved?

(void)viewDidLoad
{
    [super viewDidLoad];
    gotQuoteList = NO;
    isExpanded = NO;
    heightOfUploadManager = 282;
    freqQuotesArray = [[NSMutableArray alloc] init];
    selectedCheckboxes = [[NSMutableDictionary alloc] init];
    serviceConfig_G_Obj = [[ServiceConfig alloc] init];
    cacheManager_G_Obj = [[CacheManager alloc] init];

    [self.view setBackgroundColor: [[UIColor whiteColor] colorWithAlphaComponent:0.5f]];
    [self observeRotationChanges];

    uploadMngrView = [[UIView alloc] init];
    [self setUploadManagerFrame];
    [uploadMngrView setBackgroundColor:[self colorWithHexString:@"EFEFEF"]];
    uploadMngrView.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
    uploadMngrView.layer.borderWidth = 1.0;
    [self.view addSubview:uploadMngrView];

    UIView *titleLblBgView = [[UIView alloc] init];
    [titleLblBgView setFrame:CGRectMake(0, 40, 512, 1)];
    [titleLblBgView setBackgroundColor:[self colorWithHexString:@"C7C7C7"]];
    [uploadMngrView addSubview:titleLblBgView];

    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 1, 512-21, 38)];
    [titleLabel setText:@"Upload Document"];
    [titleLabel setTextAlignment:NSTextAlignmentLeft];
    [titleLabel setBackgroundColor:[self colorWithHexString:@"EFEFEF"]];
    [titleLabel setTextColor:[self colorWithHexString:@"656565"]];
    [titleLabel setFont:[UIFont fontWithName:@"Arial" size:21]];
    [uploadMngrView addSubview:titleLabel];

    UILabel *fileLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 60, 141, 34)];
    [fileLabel setText:@"File"];
    [fileLabel setBackgroundColor:[self colorWithHexString:@"EFEFEF"]];
    [fileLabel setTextColor:[self colorWithHexString:@"656565"]];
    [fileLabel setFont:[UIFont fontWithName:@"Arial" size:14]];
    [uploadMngrView addSubview:fileLabel];

    UILabel *fileNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(163, 60, 329, 34)];
    [fileNameLabel setBackgroundColor: [UIColor colorWithPatternImage:[UIImage imageNamed:@"labelBG.png"]]];
    [fileNameLabel setTextColor:[self colorWithHexString:@"656565"]];
    [fileNameLabel setText:[NSString stringWithFormat:@"  %@",[[self getFileName] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
    [fileNameLabel setFont:[UIFont fontWithName:@"Arial" size:14]];
    fileNameLabel.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
    fileNameLabel.layer.borderWidth = 1.0;
    [uploadMngrView addSubview:fileNameLabel];

    UILabel *destinationLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 114, 141, 34)];
    [destinationLabel setTextColor:[self colorWithHexString:@"656565"]];
    [destinationLabel setText:@"Destination"];
    [destinationLabel setBackgroundColor:[self colorWithHexString:@"EFEFEF"]];
    [destinationLabel setFont:[UIFont fontWithName:@"Arial" size:14]];
    [uploadMngrView addSubview:destinationLabel];

    UILabel *destinationNameLabel = [[UILabel alloc] initWithFrame:CGRectMake(163, 114, 329, 34)];
    destinationNameLabel.tag = 1;
    UITapGestureRecognizer *worksaceRBTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapRadioBtnLabelWithGesture:)];
    worksaceRBTapGestureRecognizer.numberOfTapsRequired = 1;
    [destinationNameLabel setUserInteractionEnabled:YES];
    [destinationNameLabel addGestureRecognizer:worksaceRBTapGestureRecognizer];
    destinationNameLabel.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
    destinationNameLabel.layer.borderWidth = 1.0;
    [destinationNameLabel setText:@"        My Workspace"];
    [destinationNameLabel setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"labelBG.png"]]];    [destinationNameLabel setTextColor:[self colorWithHexString:@"656565"]];
    [destinationNameLabel setFont:[UIFont fontWithName:@"Arial" size:14]];
    [uploadMngrView addSubview:destinationNameLabel];

    myWorkspaceRadioBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    myWorkspaceRadioBtn.tag = 1;
    [myWorkspaceRadioBtn setImage:[UIImage imageNamed:@"radiobtn_off.png"] forState:UIControlStateNormal];
    [myWorkspaceRadioBtn setImage:[UIImage imageNamed:@"radiobtn_on.png"] forState:UIControlStateSelected];
    [myWorkspaceRadioBtn setFrame:CGRectMake(166, 121, 26, 22)];
    myWorkspaceRadioBtn.selected=YES;
    [myWorkspaceRadioBtn addTarget:self action:@selector(radioButton:) forControlEvents:UIControlEventTouchUpInside];
    [uploadMngrView addSubview:myWorkspaceRadioBtn];

    UILabel *destinationQuoteLabel = [[UILabel alloc] initWithFrame:CGRectMake(163, 147, 329, 34)];
    destinationQuoteLabel.tag = 2;
    UITapGestureRecognizer *quotelistRBTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapRadioBtnLabelWithGesture:)];
    quotelistRBTapGestureRecognizer.numberOfTapsRequired = 1;
    [destinationQuoteLabel setUserInteractionEnabled:YES];
    [destinationQuoteLabel addGestureRecognizer:quotelistRBTapGestureRecognizer];
    destinationQuoteLabel.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
    destinationQuoteLabel.layer.borderWidth = 1.0;
    [destinationQuoteLabel setTextColor:[self colorWithHexString:@"656565"]];
    [destinationQuoteLabel setFont:[UIFont fontWithName:@"Arial" size:14]];
    [destinationQuoteLabel setText:@"        Link to selected quote"];
    [destinationQuoteLabel setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"labelBG.png"]]];
    [uploadMngrView addSubview:destinationQuoteLabel];

    quoteListRadioBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    quoteListRadioBtn.tag = 2;
    [quoteListRadioBtn setImage:[UIImage imageNamed:@"radiobtn_off.png"] forState:UIControlStateNormal];
    [quoteListRadioBtn setImage:[UIImage imageNamed:@"radiobtn_on.png"] forState:UIControlStateSelected];
    [quoteListRadioBtn setFrame:CGRectMake(166, 152, 26, 22)];
    [quoteListRadioBtn addTarget:self action:@selector(radioButton:) forControlEvents:UIControlEventTouchUpInside];
    [uploadMngrView addSubview:quoteListRadioBtn];

    [self fillQuoteListScrollView];

    lineView = [[UIView alloc] initWithFrame:CGRectMake(0, 202, 512, 1)];
    lineView.backgroundColor = [self colorWithHexString:@"C7C7C7"];
    [uploadMngrView addSubview:lineView];

    cancelButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [cancelButton setFrame:CGRectMake(20, 222, 231, 40)];
    [cancelButton.titleLabel setFont:[UIFont boldSystemFontOfSize:14]];
    [cancelButton setTitleColor:[self colorWithHexString:@"656565"] forState:UIControlStateNormal];
    [cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
    CAGradientLayer *cancelBtnGradient = [CAGradientLayer layer];
    cancelBtnGradient.frame = cancelButton.bounds;
    cancelBtnGradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor], (id)[[UIColor colorWithRed:238.0/255.0f green:238.0/255.0f blue:238.0/255.0f alpha:1.0f] CGColor], nil];
    [cancelButton.layer insertSublayer:cancelBtnGradient atIndex:0];
    cancelButton.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
    cancelButton.layer.borderWidth = 1.0;
    [cancelButton addTarget:self action:@selector(cancelUpload) forControlEvents:UIControlEventTouchUpInside];
    [uploadMngrView addSubview:cancelButton];

    uploadButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [uploadButton setFrame:CGRectMake(261, 222, 231, 40)];
    [uploadButton.titleLabel setFont:[UIFont boldSystemFontOfSize:14]];
    [uploadButton setTitleColor:[self colorWithHexString:@"55A0B9"] forState:UIControlStateNormal];
    [uploadButton setTitle:@"Upload" forState:UIControlStateNormal];
    CAGradientLayer *uploadBtnGradient = [CAGradientLayer layer];
    uploadBtnGradient.frame = uploadButton.bounds;
    uploadBtnGradient.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor], (id)[[UIColor colorWithRed:238.0/255.0f green:238.0/255.0f blue:238.0/255.0f alpha:1.0f] CGColor], nil];
    [uploadButton.layer insertSublayer:uploadBtnGradient atIndex:0];
    uploadButton.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
    uploadButton.layer.borderWidth = 1.0;
    [uploadButton addTarget:self action:@selector(uploadDoc) forControlEvents:UIControlEventTouchUpInside];
    [uploadMngrView addSubview:uploadButton];
}
Rajeev Bv
  • 1
  • 1

2 Answers2

0

You can do this like this,

uploadMngrView = [[UIView alloc] init];
[self setUploadManagerFrame];
[uploadMngrView setBackgroundColor:[self colorWithHexString:@"EFEFEF"]];
uploadMngrView.layer.borderColor = [self colorWithHexString:@"C7C7C7"].CGColor;
uploadMngrView.layer.borderWidth = 1.0;

if ([UIDevice currentDevice].userInterfaceIdom == UIUserInterfaceIdoniPad) {
    [self.view addSubview:uploadMngrView];
}

HTH, Enjoy Coding !!

Viral Savaj
  • 3,379
  • 1
  • 26
  • 39
0

As your setting up the views programatically, you something like this

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{  
     // Create the view only for ipad
     self.someView = [[UIView alloc] initWithFrame:someFrame];

     //Or set the view hidden just on ipad
     self.someView.hidden = YES;

     //Or set the view a different frame on ipad
     self.someView.frame = CGRectMake(x,y,width,height);

}
else
{
    //Do some non ipad layout stuff here
}
Dan Atherton
  • 161
  • 6