因此,我使用最新版本的XCode创建了一个新项目,并尝试记录我的应用程序的屏幕大小(以确定UI的设备类型).我从iPhone 5运行了以下代码:
NSLog(@"%f", [[UIScreen mainScreen] bounds].size.height);
Run Code Online (Sandbox Code Playgroud)
这返回了480,这是旧iPhone系列的屏幕尺寸.我在模拟器中试过,发生了同样的事情.我必须在项目中启用一些属性来识别屏幕大小吗?
这仅适用于5个以上的设备; 如果我在iPad上运行游戏,它会识别1024屏幕尺寸.
我知道这个代码在过去有效.我使用完全相同的方法做了一段时间的游戏,它没有检测屏幕大小的问题,但这是在XCode 4.x中构建的.
我正在使用自定义视图控制器,我在App Delegate中创建了以下代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if([Global getDevice] == 1)
{
//iPhone 5+
self.window.rootViewController = [[FivePlus alloc] initWithNibName:nil bundle:nil];
}
else if([Global getDevice] == 2)
{
//iPhone 4S-
self.window.rootViewController = [[FourSMinus alloc] initWithNibName:nil bundle:nil];
}
else
{
//iPad
self.window.rootViewController = [[iPad alloc] initWithNibName:nil bundle:nil];
}
[[self window] makeKeyAndVisible];
// Override point for customization after application launch.
return …Run Code Online (Sandbox Code Playgroud) 希望这很简单.我想使用CSS calc操作来执行两个计算:
我想将我的宽度设置为相当于
(100% / 7) - 2
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在CSS计算操作中执行多个操作,则会失败:
width: calc((100% / 7) - 2);
Run Code Online (Sandbox Code Playgroud)
如何在一个CSS语句中执行多个calc操作?
因此,在大多数情况下,我已经能够使用类似于这些行的东西,但是Javascript给了我这个奇怪的结果.
如果我取一些值并且结果是未定义的,则与整数相比,它看起来不会小于或大于任何数字.为什么是这样?
if(undefined < 1 || undefined >= 1)
alert("yes");
else
alert("no");
//this always alerts no
Run Code Online (Sandbox Code Playgroud)
我认为这是一个简单的问题,但我似乎找不到办法做到这一点.
我有一个视图,是我的uiviewcontroller的子视图.在那个视图中,我有另一种观点.为了澄清,这是架构:
>UIViewController.view
--->Subview A
------->Subview B
Run Code Online (Sandbox Code Playgroud)
我想得到subview b内部的框架uiviewcontroller.view.
这可能吗?subviewB.frame给了我内部视图的框架Subview A.
我有这样的层次结构:
<search>
<inner>
<input/>
<p/>
<img/>
</inner>
</search>
Run Code Online (Sandbox Code Playgroud)
我所试图做的是选择父<search>的的<input/>聚焦状态,但如果我这样做:
$(function(){
$("input").focus(function(){
console.log($(this).parent("search"));
});
});
Run Code Online (Sandbox Code Playgroud)
控制台显示一个空数组.是否有一种干净的方式来选择多个级别的父级?我知道这样做的唯一方法就是.parent().parent("search"),哪个会起作用,但不是很干净,如果我试图选择父母5层,那将是非常残暴的.
我有一个窗口,我想填满整个屏幕,以便页脚始终离开屏幕.我用最小高度完成了这个:
#cnt
{
min-height: calc(100% - 62px);
}
Run Code Online (Sandbox Code Playgroud)
但是,在某些情况下,对于我创建的侧边栏来说,这可能太小了.侧边栏的最小高度为404px.如何使用这两者以便它使用更大的值?这可以用严格的CSS完成还是我需要JS?
这不起作用:
#cnt
{
min-height: calc(100% - 62px);
min-height: 404px;
}
Run Code Online (Sandbox Code Playgroud)
它最终总是使用404px值.
这是我的JS/jQuery解决方案.我发现的一个问题是我的浏览器$(window).height()返回的值比它应该的值大400像素.此外,在调整大小时,它会在一个值(+ 377px)和另一个值(+ 787px)之间来回跳转,其中+表示它比实际值大得多.为了解决这个问题,我使用了<cnt>元素本身的高度,但这有相同的跳跃来回大小问题.
$(window).resize(function(){
if($("cnt").outerHeight() < 404)
{
$("cnt").css("min-height", "404px");
}
else
{
$("cnt").css("min-height", "calc(100% - 62px)");
}
}).load(function(){
if($("cnt").height() < 404)
{
$("cnt").css("min-height", "404px");
}
else
{
$("cnt").css("min-height", "calc(100% - 62px)");
}
});
Run Code Online (Sandbox Code Playgroud)
我写了一个函数,如果有必要,可以在一个数字中添加逗号和零,但是我已经陷入了模数函数.根据我的PHP:
float(877.5) % 1 == 0 //true
Run Code Online (Sandbox Code Playgroud)
不应该877.5 % 1 == 0.5?
我喜欢使用PHP的一个函数是冒号样式的if语句(我不知道它实际上是什么叫.)
<?php if(something):?>
<html stuff>
<?php endif;?>
Run Code Online (Sandbox Code Playgroud)
但我最近尝试用多种情况做到这一点:
<?php if(something):?>
<html stuff>
<?php else if(something):?>
<html stuff>
<?php endif;?>
Run Code Online (Sandbox Code Playgroud)
我在第三行(else if)上得到一个错误:
意外的T_IF
如果这样,是否可以制作if-else?
我不知道从哪里开始.显然CGRectIntersectsRect在这种情况下不起作用,你会明白为什么.
我有一个UIView的子类,里面有一个UIImageView,放在UIView的确切中心:

然后我旋转自定义UIView以维持内部UIImageView的框架,同时仍然能够执行CGAffineRotation.结果框架看起来像这样:

我需要阻止用户使这些UIImageViews相交,但我不知道如何检查两个UIImageViews之间的交集,因为它们的框架不仅不适用于父UIView,而且它们在不影响其框架的情况下旋转.
我尝试的唯一结果是不成功的.
有任何想法吗?
我创建NSMutableAttributedString的子类,在我的项目做一个字符串,不断改变每个字符在初始化数组给出的一种颜色之一,但是当我尝试调用init方法,我得到sigabrt的initWithString:方法.
#import <Foundation/Foundation.h>
@interface RainbowString : NSMutableAttributedString
@property (nonatomic) NSArray* colors;
@property (nonatomic) NSTimeInterval duration;
@property (nonatomic) NSTimer* timer;
- (id)initStringWithColors:(NSArray*)colors withString:(NSString*)string;
- (id)initStringWithColors:(NSArray*)colors withCycleDuration:(NSTimeInterval)duration withString:(NSString*)string;
- (void)stop;
- (void)start:(NSTimeInterval)duration;
@end
Run Code Online (Sandbox Code Playgroud)
- (id)initStringWithColors:(NSArray *)colors withString:(NSString *)string
{
self = [super initWithString:string];
if(self)
{
[self setColors:colors];
[self cycle];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
即使我只是打电话[[RainbowString alloc] initWithString:@"Hello"];,我也会得到同样的错误:
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [RainbowString initWithString:]:无法识别的选择器发送到实例0x166778c0'
好吧,只是为了测试这个,我创建了一个NSMutableAttributedString的测试子类,绝对没有内容.我刚刚创建了子类并保持原样.
#import <Foundation/Foundation.h>
@interface Test : NSMutableAttributedString
@end
Run Code Online (Sandbox Code Playgroud)
我跑了:
[[NSMutableAttributedString alloc] …Run Code Online (Sandbox Code Playgroud) ios ×4
objective-c ×4
frame ×3
css ×2
javascript ×2
php ×2
css-calc ×1
css3 ×1
expression ×1
height ×1
intersection ×1
iphone ×1
jquery ×1
modulus ×1
parent ×1
uiscreen ×1
uiview ×1
undefined ×1