我正在查看iPhone SDK 的aurioTouch示例应用程序.当您选择"FFT"选项时,它会实现一个基本的频谱分析仪.应用程序缺少的一件事是X轴标签(即频率标签).
在aurioTouchAppDelegate.mm文件中,在第- (void)drawOscilloscope652行的函数中,它具有以下代码:
if (displayMode == aurioTouchDisplayModeOscilloscopeFFT)
{
if (fftBufferManager->HasNewAudioData())
{
if (fftBufferManager->ComputeFFT(l_fftData))
[self setFFTData:l_fftData length:fftBufferManager->GetNumberFrames() / 2];
else
hasNewFFTData = NO;
}
if (hasNewFFTData)
{
int y, maxY;
maxY = drawBufferLen;
for (y=0; y<maxY; y++)
{
CGFloat yFract = (CGFloat)y / (CGFloat)(maxY - 1);
CGFloat fftIdx = yFract * ((CGFloat)fftLength);
double fftIdx_i, fftIdx_f;
fftIdx_f = modf(fftIdx, &fftIdx_i);
SInt8 fft_l, fft_r;
CGFloat fft_l_fl, fft_r_fl;
CGFloat interpVal;
fft_l = (fftData[(int)fftIdx_i] & …Run Code Online (Sandbox Code Playgroud) 我注意到iOS 7引入了与文本布局相关的新类,例如NSLayoutManager,NSTextStorage和NSTextContainer.我如何使用这些来获取有关NSString上自动换行的信息?
例如,假设我有一个很长的NSString,我把它放在UILabel中.如果我在UILabel上启用多行,它将生成一个字符串,如下所示:
The quick brown fox jumps
over the lazy dog.
Run Code Online (Sandbox Code Playgroud)
这很好,但我无法访问代码中的换行符(例如,在jumps我希望它返回\n或类似之后的单词之后).我想知道断行发生在哪个字符索引处.我知道我们可以用CoreText做到这一点,但是因为我们在iOS 7中有这些新类,所以我想知道如何使用它们.
该用于NSDateComponents文件说,作为iOS的7,周已被废弃,用weekOfDay或WEEKOFYEAR代替.
如果我想获得与我使用时相同的逻辑,我week应该使用哪些?
我已经在我的代码中的许多地方使用过这个,所以思考每个场景都很麻烦.如果有一个枚举映射到该周最初所做的相同的事情,它将节省大量的时间.
从nib文件加载UIView时,视图通常translatesAutoresizingMastIntoConstraints设置为YES.
因此,您无法向视图添加顶级约束(例如宽度和高度).
在过去,我已经能够生成一个顶级视图,它允许我创建顶级约束,并设置translatesAutoresizingMastIntoConstraints为NO.
如何从笔尖加载UIView而不进行子类化时,我怎么能得到这种行为?
但是,稍微自定义视图控制器后,它现在显示黑屏而不是启动图像.
当我将它设置为全新的视图控制器时,一切都很好.看起来原始视图控制器现在处于不良状态.
我怎样才能解决这个问题?
(我在Xcode 6.2上运行iOS 8.2模拟器.)
我正在写一个UIAutomation测试用例,我需要等待用户激活才能继续.似乎没有一种很好的方法可以检查按钮是否可以更改为启用状态.
什么是最好的是在检查它的状态之前等待UI中发生的事情?
dispatch_after和NSTimer似乎都不起作用.他们只是阻止失败.
iOS 9 在iOS 8 QuickType栏中添加了一个快捷栏.
作为此更改的一部分,如果您将蓝牙键盘连接到iPad,则键盘处于最小化的仅限快捷栏模式(可以通过在模拟器中按下命令-k来模拟).
我有使用类似于以下方法获取键盘高度的代码:
CGRect keyboardFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat keyboardHeight = keyboardFrame.size.height; // = 313
Run Code Online (Sandbox Code Playgroud)
问题是当键盘在展开和折叠状态之间切换时,高度保持不变,导致我的视图显示在其旧位置:
期望的行为:
实际行为:
将红色视图附加到键盘顶部的正确方法是什么?
我无法在我正在测试的应用程序的屏幕上找到XCUIElements.我意识到你可以通过以下方式访问按钮:
app.buttons[].elementBoundByIndex(0)
Run Code Online (Sandbox Code Playgroud)
但问题是有时候,找不到组件.就像我在UITableView中的单元格中有一个Button的情况一样.我尝试使用XCUIElementQuery来查找按钮,但它不在那里.我尝试查找表或tableviews或集合视图,即使它们在视图控制器中,它们也不会在UI测试中找到.返回数组的计数将为零.
我最初尝试记录测试,但单击我尝试访问的元素不起作用.Xcode将其检测为"其他元素",并且在尝试点击期间,播放应用程序不会前进.
是否有一种高级方法来访问UI层次结构中的UIView高级组件以进行级联?
假设我要删除约束,传统上我会这样做:
view.removeConstraint(constraint)
Run Code Online (Sandbox Code Playgroud)
但是,现在有了用于安装/卸载约束的新的isActive方法。
如果我执行以下操作:
constraint.isActive = false
Run Code Online (Sandbox Code Playgroud)
它会正确地将其从内存中删除吗?
UIButtonType custom和system.之间有什么区别?诸如adjustsImageWhenHighlighted影响我所提供的图像的财产将如何影响?
如果我只提供一些图像而不提供其他图像会发生什么?
ios ×7
ios7 ×2
uiview ×2
xcode7 ×2
audio ×1
autolayout ×1
deprecated ×1
fft ×1
iboutlet ×1
ios9 ×1
ipad ×1
iphone ×1
keyboard ×1
nib ×1
nsstring ×1
objective-c ×1
storyboard ×1
swift ×1
ui-testing ×1
uibutton ×1
word-wrap ×1
xcode6 ×1
xctest ×1