ios6&ios7 4寸屏和3.5寸屏如何显示UIButton和UITableview

Posted

技术标签:

【中文标题】ios6&ios7 4寸屏和3.5寸屏如何显示UIButton和UITableview【英文标题】:how to display the UIButton and UITableview in ios6&ios7 for 4-inches screen and 3.5 inches screen 【发布时间】:2013-12-02 09:15:07 【问题描述】:

我正在开发一个应用程序。在应用程序中,我为 ios7&ios6 编写了 3.5 英寸屏幕和 4 英寸屏幕的代码。我拿了一个视图控制器;在这个视图控制器中,我想显示两个图像,一个用于顶部,另一个用于底部。还显示登录和注销按钮以及登录 Tableview。在ios7&ios6 3.5寸屏和4寸屏上,Top image和Bottom image这两张图的显示都没有问题。这两个图像显示正确。但按钮和 UITableview 没有显示。我不明白显示 UIButton 和 UITableview 的问题出在哪里。请给我一些想法,任何人。我是编程新手。提前致谢。

以下是我的代码。

Viewcontroller.m(用于 ios7 和 ios6 的 3.5 英寸和 4 英寸屏幕)。

 if ([[UIScreen mainScreen] bounds].size.height == 568)  
  

   if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
    

     imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 65, 162, 57)];

     imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 415, 300, 153 )];

     // Button Login for ios7 4-inches screen.

     btnLogin.frame = CGRectMake(20, 230, 127, 32);

     // Create Login for UITableview

     tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 80, 320, 123) style:UITableViewStyleGrouped];

  

  else
   

   imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 45, 162, 57)];

   imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 395, 300, 153 )];

   // Button Login for ios6 4-inches screen.

   btnLogin.frame = CGRectMake(20, 230, 127, 32);

   tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 80, 320, 123) style:UITableViewStyleGrouped];

    

   imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];

   [self.view addSubview:imgLogo];

   imgBuilding.image=[UIImage imageNamed:@"image-02.png"];

   imgBuilding.alpha=0.4;      

   [self.view addSubview:imgBuilding];

   btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];

   [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];

   [btnLogin setBackgroundImage:[UIImage imageNamed:@"Sign-in-button.png"] forState:UIControlStateNormal];

   [self.view addSubview:btnLogin];

   // create Login tableview properties

   tableVw.dataSource = self;       
   tableVw.delegate = self;

   tableVw.backgroundColor=[UIColor clearColor];

   tableVw.scrollEnabled=NO;

   tableVw.scrollsToTop=NO;

   [self.view addSubview:tableVw];

 

/************ *************** *************** *************** ***/ /*适用于 ios6 和 ios7 的 3.5 英寸屏幕*******************************/

/************ *************** *************** *************** ***/

 else
 

  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
   

    imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 70, 162, 57)];

    imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 345, 320,140 )];

    btnLogin.frame = CGRectMake(20, 200, 127, 32);

    // create Login Tableview

    tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 85, 300, 123) style:UITableViewStyleGrouped];

   

   else
   

    imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 50, 162, 57)];

    imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 325, 320,140 )];

    btnLogin.frame = CGRectMake(20, 200, 127, 32);

    tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 85, 300, 123) style:UITableViewStyleGrouped];

   

   imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];

   [self.view addSubview:imgLogo];

   imgBuilding.image=[UIImage imageNamed:@"image-02.png"];

   imgBuilding.alpha=0.4;

   [self.view addSubview:imgBuilding];

   // Create Button Properties

   btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];

   [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];

   [btnLogin setBackgroundImage:[UIImage imageNamed:@"Sign-in-button.png"] forState:UIControlStateNormal];

   [self.view addSubview:btnLogin];

   // Create Login Tableview properties

   tableVw.dataSource = self;     
   tableVw.delegate = self;

   tableVw.backgroundColor=[UIColor clearColor];

   tableVw.scrollEnabled=NO;

   tableVw.scrollsToTop=NO;

   [self.view addSubview:tableVw];


   

  

【问题讨论】:

添加语句如 btnLogin = [UIButton alloc]init];高于如果。并将类型从roundrect更改为自定义 【参考方案1】:

试试这个代码。我对您的代码进行了更改。

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

    UIImageView *imgLogo;
    UIImageView *imgBuilding;
    UIButton *btnLogin = [UIButton buttonWithType:UIButtonTypeCustom];
    UITableView *tableVw;
    if ([[UIScreen mainScreen] bounds].size.height == 568)

        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 65, 162, 57)];
            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 415, 300, 153 )];

            btnLogin.frame = CGRectMake(20, 230, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 123, 320, 100) style:UITableViewStylePlain];
        else

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 45, 162, 57)];

            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 395, 300, 153 )];



            btnLogin.frame = CGRectMake(20, 210, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 103, 320, 100) style:UITableViewStylePlain];
        

        imgLogo.image=[UIImage imageNamed:@"icon.png"];
        [self.view addSubview:imgLogo];
        imgBuilding.image=[UIImage imageNamed:@"icon.png"];
        imgBuilding.alpha=0.4;
        [self.view addSubview:imgBuilding];

        [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];
        [btnLogin setBackgroundColor:[UIColor blackColor]];
        [self.view addSubview:btnLogin];

        tableVw.scrollEnabled=NO;
        tableVw.scrollsToTop=NO;
        tableVw.dataSource=self;
        tableVw.delegate=self;
        [self.view addSubview:tableVw];

    else

        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 70, 162, 57)];
            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 345, 320,140 )];

            btnLogin.frame = CGRectMake(20, 230, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 127, 300, 100) style:UITableViewStylePlain];
        else

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 50, 162, 57)];
            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 325, 320,140 )];
            btnLogin.frame = CGRectMake(20, 200, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 85, 300, 123) style:UITableViewStylePlain];
        

        imgLogo.image=[UIImage imageNamed:@"icon.png"];
        [self.view addSubview:imgLogo];
        imgBuilding.image=[UIImage imageNamed:@"icon.png"];
        imgBuilding.alpha=0.4;
        [self.view addSubview:imgBuilding];

        [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];
        btnLogin.backgroundColor=[UIColor blackColor];
        [self.view addSubview:btnLogin];

        tableVw.dataSource = self;
        tableVw.delegate = self;
        tableVw.scrollEnabled=NO;
        tableVw.scrollsToTop=NO;
        [self.view addSubview:tableVw];
    




- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView

    return 1;

- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section

    return 2;

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

    return 40;

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath


    NSString *CellIdentifier =[NSString stringWithFormat:@"%D",indexPath.row];

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    cell.textLabel.text=@"1";


    return cell;


【讨论】:

和@user2930730 试试这个代码,如果它解决了你的问题,请接受它。所以其他用户可以使用它。 @感谢您的回复兄弟。非常感谢您 很高兴为您提供帮助

以上是关于ios6&ios7 4寸屏和3.5寸屏如何显示UIButton和UITableview的主要内容,如果未能解决你的问题,请参考以下文章

围观迅为IMX6开发板QT下LVDS和HDMI如何双屏异显的

iTOP-4412开发板驱动lcd显卡以及linux开机log的修改方法

LCD屏参数及应用举例

正点原子4.3寸屏

Launch Screen在iOS7/8中的实现

如何在 ios 7 和 ios6 中显示启动画面