我需要确定选定的UIColor(由用户选择)是暗还是亮,因此我可以更改位于该颜色顶部的文本行的颜色,以提高可读性.
这是Flash/Actionscript中的一个示例(带演示):http://web.archive.org/web/20100102024448/http://theflashblog.com/?p = 173
有什么想法吗?
干杯,安德烈
UPDATE
感谢大家的建议,这是工作代码:
- (void) updateColor:(UIColor *) newColor
{
const CGFloat *componentColors = CGColorGetComponents(newColor.CGColor);
CGFloat colorBrightness = ((componentColors[0] * 299) + (componentColors[1] * 587) + (componentColors[2] * 114)) / 1000;
if (colorBrightness < 0.5)
{
NSLog(@"my color is dark");
}
else
{
NSLog(@"my color is light");
}
}
Run Code Online (Sandbox Code Playgroud)
再次感谢 :)
我创建了一个HTML5视频播放器(非常简单),可以在iPad和浏览器上完美运行.
然而,当我在iPhone上打开它时,我只得到一个播放按钮,当按下该按钮时,在我的所有东西之上打开一个新窗口上的原生视频播放器.
这意味着我无法访问我的自定义控件和时间跟踪(用Javascript编写),因为视频现在正在运行.
有没有办法覆盖苹果对iphone上的HTML5视频的控制,让它像在ipad上一样工作?
干杯
我已经搜索了负载,但找不到答案.
我有一个正常的UILabel,这样定义:
UILabel *totalColors = [[[UILabel alloc] initWithFrame:CGRectMake(5, 7, 120, 69)] autorelease];
totalColors.text = [NSString stringWithFormat:@"%d", total];
totalColors.font = [UIFont fontWithName:@"Arial-BoldMT" size:60];
totalColors.textColor = [UIColor colorWithRed:221/255.0 green:221/255.0 blue:221/255.0 alpha:1.0];
totalColors.backgroundColor = [UIColor clearColor];
[self addSubview:totalColors];
Run Code Online (Sandbox Code Playgroud)
我希望字母之间的水平间距更紧,同时保持字体大小.
有没有办法做到这一点?这应该是一件非常基本的事情.
干杯,安德烈
更新:
所以我被迫这样做:
- (void) drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSelectFont (context, "Arial-BoldMT", 60, kCGEncodingMacRoman);
CGContextSetCharacterSpacing (context, -10);
CGContextSetTextDrawingMode (context, kCGTextFill);
CGContextSetRGBFillColor(context, 221/255.0, 221/255.0, 221/255.0, 221/255.0);
CGAffineTransform xform = CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, 0.0);
CGContextSetTextMatrix(context, xform);
char* result = malloc(17);
sprintf(result, …Run Code Online (Sandbox Code Playgroud) 我有一个带有自定义搜索栏的HTML5视频播放器,它在iPhone(在线播放)和浏览器上运行良好.
它在iPad上播放效果也很好,搜索条在电影播放时更新,但出于某种原因,我无法寻求.
所有的值都是正确的,我试图设置:
myPlayer.currentTime = XX;
Run Code Online (Sandbox Code Playgroud)
不幸的是,iPad拒绝设置.currentTime属性.
从我可以收集到的浏览器和iPad之间的区别是我得到的浏览器:
myPlayer.networkState = 3
myPlayer.readyState = 4
Run Code Online (Sandbox Code Playgroud)
在iPad上,我得到:
myPlayer.networkState = 2
myPlayer.readyState = 3
Run Code Online (Sandbox Code Playgroud)
这是完全相同的代码,运行本地MP4视频.
知道为什么会这样吗?
干杯,安德烈
我在UIScrollView中有一个图像,可以滚动和缩放.
当用户按下按钮时,我希望代码从UIScrollView的任何部分创建一个图像,该图像位于我使用CGRect指定的区域内.
我已经看过用于裁剪UIImages的代码,但是我无法使其适应视图,因为它使用了CGContextDrawImage.
有什么想法吗?
干杯,安德烈
过去一周我一直在寻找这个问题的答案.
我在UIScrollView中有一个UIWebView.一切都很好,但我希望UIWebView的内容在方向改变时重置其缩放.
在UIWebView内部的HTML中,我将视口的宽度(带元标记)设置为"设备宽度",然后在Obj-C端设置scalesPagesToFit = YES;
我试过用javascript重置缩放; 通过在运行时替换元标记; 重装; 访问UIWebView内部的UIScrollView; 等等...
但没有成功.
你们中的任何人都知道一个解决方法吗?
我唯一可以想到的是每次我们改变方向时重新创建UIWebViews,但这会使它们在渲染内容时闪现白色,这看起来很糟糕:(
有什么想法吗?
非常感谢,安德烈
这个让我疯了......
考虑到"平面"是一个CALayer,我在X轴上旋转它:
plane.transform = CATransform3DMakeRotation(180 * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
Run Code Online (Sandbox Code Playgroud)
这使它顺时针旋转,这是完美的.
现在,在某个时间点,我希望它返回到0度,所以我使用:
plane.transform = CATransform3DMakeRotation(0 * M_PI / 180.0f, 1.0f, 0.0f, 0.0f);
Run Code Online (Sandbox Code Playgroud)
事情是......它逆时针方向,这不是我想要的:(
我猜它使用最短的旋转路径,但即使我告诉它转向360度,当它完成并且我告诉它重新启动动画时,它从360开始转到180,然后它向后转正确的方向.
有办法解决这个问题吗?
我在Actionscript中做的是:
if (plane.rotationX == 360) plane.rotationX = 0;
Run Code Online (Sandbox Code Playgroud)
并且它恢复得很好,但如果我使用CATransform3DMakeRotation这样做,两个转换都会发生碰撞,因为动画(我认为)并且它会搞砸.
任何帮助将非常感激!
谢谢
几天来我一直在努力解决这个问题。
给定一个基于 ARKit 的应用程序,我可以在其中跟踪用户的面部,如何从其锚点获得面部的绝对旋转?
我可以得到 ARAnchor 的变换,它是一个 simd_matrix4x4。有很多关于如何从矩阵中获取位置的信息(它是第 3 列),但没有关于旋转的信息!
我希望能够通过传递 YAW、PITCH 和 ROLL 来控制应用程序外部的 3D 对象。
我尝试的最新一件事实际上有些作用:
let arFrame = session.currentFrame!
guard let faceAnchor = arFrame.anchors[0] as? ARFaceAnchor else { return }
let faceMatrix = SCNMatrix4.init(faceAnchor.transform)
let node = SCNNode()
node.transform = faceMatrix
let rotation = node.worldOrientation
Run Code Online (Sandbox Code Playgroud)
rotation.x .y 和 .z 有我可以使用的值,但是当我移动手机时,这些值会发生变化。例如,如果我年满 180 岁?并继续看手机,数值会根据手机的位置发生剧烈变化。
我尝试在 ARConfiguration 中更改世界对齐方式,但这并没有什么不同。
我读错了参数吗?这应该容易得多!
我想在iPhone上创建一个动画的perlin噪音,所以我最终可以这样做:http://dl.dropbox.com/u/1977230/example.png
我看了看,但找不到任何类似或实际显示Perlin噪音的方法.
我被告知要看OpenGL ES,但即使是搜索Perlin噪音或熔岩/等离子效应的例子也不会产生任何结果.
我真的很感激这方面的一些帮助.
谢谢你们,安德烈
我在这里疯了.
我有一个应该返回一个浮点数的函数:
- (float) getHue:(UIColor *)original
{
NSLog(@"getHue");
const CGFloat *componentColors = CGColorGetComponents(original.CGColor);
float red = componentColors[0];
float green = componentColors[1];
float blue = componentColors[2];
float h = 0.0f;
float maxChannel = fmax(red, fmax(green, blue));
float minChannel = fmin(red, fmin(green, blue));
if (maxChannel == minChannel)
h = 0.0f;
else if (maxChannel == red)
h = 0.166667f * (green - blue) / (maxChannel - minChannel) + 0.000000f;
else if (maxChannel == green)
h = 0.166667f * (blue - red) / (maxChannel …Run Code Online (Sandbox Code Playgroud) 我试图尽可能避免使用Interface Builder.
目前我通过代码创建了视图控制器,并通过代码更改了视图.
我现在需要其中一个步骤将应用程序发送到带有标签栏的新视图,这样我也可以更改视图.
理想情况下,我要做的是告诉当前的视图控制器在底部添加一个Tab Bar,但我不确定这是否可行,所以我可能不得不用UITabBarController交换UIViewController?
任何帮助将不胜感激.
干杯,安德烈
我在字符串中有几个数字,例如:
8;#
10;#
34;#
etc...
Run Code Online (Sandbox Code Playgroud)
我想从字符串中删除所有这些,所以我认为RegExp将是我的最佳选择.
我使用什么正则表达式来识别后面的任何数字系列;#?
我一直在为这一个寻找解决方案.
我有4个NSTextFields(实际上是一些自定义操作的子类),它们都共享相同的X位置.
问题是,有些人有不同的风格(浅色,普通,粗体),可能有不同的尺寸.
会发生的是,即使X原点相同,第一个字母总是有一些(始终不同的)左边距.
请参见图片:https://dl.dropbox.com/u/1977230/Screen%20Shot%202012-12-11%20at%2017.55.58.png
我想确保所有行都从同一点开始,比如从左边开始100px.
知道如何覆盖那个奇怪的填充吗?
干杯
iphone ×9
xcode ×6
ios ×2
ipad ×2
objective-c ×2
uiscrollview ×2
arkit ×1
calayer ×1
cocoa ×1
colors ×1
crop ×1
html5 ×1
html5-video ×1
image ×1
margin ×1
math ×1
nstextfield ×1
numbers ×1
perlin-noise ×1
regex ×1
reset ×1
rotation ×1
seekbar ×1
spacing ×1
swift ×1
uicolor ×1
uifont ×1
uilabel ×1
uiwebview ×1
video ×1
zoom ×1