Vasu
Vasu

Reputation: 896

Imageview not display Proper For Iphone 5 Retina

I am developing one app in that app display 20 array Images to Image view Scroll horizontally.

give scroll view to that imageview like this

scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
for (m = 0; m <=19; m++)
    {
        rnd = arc4random_uniform(arr.count);

        NSString *imageName=[FrontsCards objectAtIndex:rnd];

    fullImageName=[NSString stringWithFormat:@"%@",imageName];

        int padding=0;

        CGRect imageViewFrame=CGRectMake(scrollView.frame.size.width*m+padding, scrollView.frame.origin.y, scrollView.frame.size.width-2*padding, scrollView.frame.size.height);

        ImgView=[[UIImageView alloc]initWithFrame:imageViewFrame];


        [ImgView setImage:[UIImage imageNamed:fullImageName]];

        [scrollView addSubview:ImgView];
     }

this imageview not display images Properly for iphone 5 simulator. below black edge add. how may i solve that issue.how to remove that black edge.how to fit that image to Iphone 5 simulator.

how may manage my ImageView to Iphone 4 or Iphone 5.

Upvotes: 2

Views: 518

Answers (6)

user4003752
user4003752

Reputation:

You need to create design for iPhone 4 and iPhone 5.

Create a class which make decision which iPhone is connected and make function on it which accept CGRect and return required size of CGRect

you can get device size by

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        CGSize result = [[UIScreen mainScreen] bounds].size;
        if (result.height < 500)
        {
            currentDeviceHeight=460;
            //You can use use iPhone 4 image

        }
        else
        {
            currentDeviceHeight=548;
            // here you can use iPhone 5 image
        }
    }
    else
    {
         // iPad
    }

Upvotes: 0

Jitendra
Jitendra

Reputation: 5081

Iphone 5 size is 568 and Iphone 4 size is 480.

scrollView=[[UIScrollView alloc]init];

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

    // For Iphone5
scrollView.frame = CGRectMake(0, 0, 320, 568)
}
else if ([[UIScreen mainScreen] bounds].size.height == 480) 
{
   //For Iphone 4 or others
scrollView.frame = CGCGRectMake(0, 0, 320, 480)
}

this will really helpful to you.

Upvotes: 2

Nishant Tyagi
Nishant Tyagi

Reputation: 9913

Use macro to check whether it is iPhone 5 or not.

#define IS_IPHONE ( [[[UIDevice currentDevice] model] isEqualToString:@"iPhone"] | [[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"])
#define IS_HEIGHT_GTE_568 [[UIScreen mainScreen ] bounds].size.height >= 568.0f
#define IS_IPHONE_5 ( IS_IPHONE && IS_HEIGHT_GTE_568 )

scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, IS_IPHONE_5?568:480)];

Upvotes: 0

Alok Singh
Alok Singh

Reputation: 896

scrollView=[[UIScrollView alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

use this to make the UIScrollView dynamic

Upvotes: 0

Durgaprasad
Durgaprasad

Reputation: 1951

Iphone 5 screen size is 568 and you have had codded height to 480. So it is not working for iphone5. DO following

scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, [[UIScreen mainScreen] bounds].size.height)];

Depending on devise scroll view height will change.

Upvotes: 2

Manann Sseth
Manann Sseth

Reputation: 2745

Try This

scrollView=[[UIScrollView alloc]init];

if ([[UIScreen mainScreen] bounds].size.height == 568) scrollView.frame = CGRectMake(0, 0, 320, 568)
else if ([[UIScreen mainScreen] bounds].size.height == 480) scrollView.frame = CGRectMake(0, 0, 320, 480)

So, it will help you to fill scrollview in iPhone-5 screen too.

Hopefully, it'll work for you.

Thanks.

Upvotes: 0

Related Questions