i've been using next line in constants differentiate between devices , number of device. what's appropriate way identify iphone 5 , still keep in 1 line format?
#define iphonetype [[uiscreen mainscreen] scale]==2 || [uidevice currentdevice].userinterfaceidiom == uiuserinterfaceidiompad ? @"4" : @"3" thanks
edit: lot of answers goal keep in 1 line format devices.
edit: based on comments, question needs clarification. here requirements:
- a single-line macro returns either
@"3",@"4", or@"5"depending on ios device. - the 4" devices (currently iphone 5 , 5th gen ipod touch) should return
@"5". - all ipads , remaining retina iphones , ipod touches should return
@"4". - all remaining non-retina iphones , ipod touches should return
@"3".
assuming updated requirements correct, following should work:
#define iphonetype (fabs((double)[uiscreen mainscreen].bounds.size.height - (double)568) < dbl_epsilon) ? @"5" : ([uiscreen mainscreen].scale==2 || ui_user_interface_idiom() == uiuserinterfaceidiompad ? @"4" : @"3") this return @"5" 4" screened iphones , ipod touches. return @"4" ipads , retina iphones , ipod touches. , return @"3" non-retina iphones , ipod touches.
Comments
Post a Comment