小编tcu*_*rdt的帖子

从Time对象获取下一个/上个月

我有一个Time对象,想找到下一个/上个月.添加减去天数不起作用,因为每月的天数不同.

time = Time.parse('21-12-2008 10:51 UTC')
next_month = time + 31 * 24 * 60 * 60
Run Code Online (Sandbox Code Playgroud)

随着人们不得不照顾滚动,月份的增量也会下降

time = Time.parse('21-12-2008 10:51 UTC')
next_month = Time.utc(time.year, time.month+1)

time = Time.parse('01-12-2008 10:51 UTC')
previous_month = Time.utc(time.year, time.month-1)
Run Code Online (Sandbox Code Playgroud)

我发现的唯一工作是

time = Time.parse('21-12-2008 10:51 UTC')
d = Date.new(time.year, time.month, time.day)
d >>= 1
next_month = Time.utc(d.year, d.month, d.day, time.hour, time.min, time.sec, time.usec)
Run Code Online (Sandbox Code Playgroud)

有没有更优雅的方式做到这一点,我没有看到?你会怎么做?

ruby

34
推荐指数
7
解决办法
4万
查看次数

UIWindow addSubview上的偏移量

我有一个基于UITabBar的应用程序,工作正常.在某些情况下,我会显示不同的UIViewController.现在的问题是,我必须调整测试笔尖的框架(并且只有测试笔尖!)才能正确显示.(否则视图位于状态栏下方).

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    if (condition) {

        UIViewController *vc = [[UIViewController alloc] initWithNibName:@"Test" bundle:nil];

        // FIXME this should NOT be required
        CGRect r = vc.view.frame;
        r.origin.y += 20;
        vc.view.frame = r;

        [window addSubview:vc.view];
        [window makeKeyAndVisible];
        return;
    }

    [window addSubview:tabViewController.view];
    [window makeKeyAndVisible];
}
Run Code Online (Sandbox Code Playgroud)

那么测试笔尖可能有问题吗?不能.测试笔尖在一个干净的新项目中按照需要工作.一个新的干净笔尖显示相同的症状.所以MainWindow笔尖必定有问题,对吧?但是UITabBarController显示得很好.

我有点困惑,这里没有想法.有什么建议如何跟踪这个?

iphone cocoa-touch

26
推荐指数
1
解决办法
1万
查看次数

如何检查Apple Maps是否已安装

任何人都知道如何检查Apple Maps是否已安装?我在文档中找不到任何内容.

使用iOS10,用户可以删除Apple Maps应用程序.对于谷歌地图,我们可以UIApplication.shared.canOpenURL()用来检查它是否已安装.我不知道检查Apple Maps存在这样的事情.

当然,你可以检查是否打开MKMapItemmapItem.openInMaps()失败-但是,这并不帮助提前检查.

mapkit ios ios10

16
推荐指数
2
解决办法
3333
查看次数

在popViewControllerAnimated上没有调用willAnimateRotationToInterfaceOrientation

在MainViewController中,我必须在方向更改时调整一些图像.简单 - 只需将代码添加到willAnimateRotationToInterfaceOrientation: callback

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
  NSLog(@"orientation: %@", name(orientation));
  ..
Run Code Online (Sandbox Code Playgroud)

按预期工作.在Portrait中,我将另一个方向感知UIViewController推送到UINavigationController上.我转向风景,一切都很好.

然后我通过调用返回MainViewController

[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)

当MainViewController的子视图根据autoresize蒙版调整为Landscape时,willAnimateRotationToInterfaceOrientation:不会被调用!

我本来期望willAnimateRotationToInterfaceOrientation:要么在不在导航控制器堆栈之上时调用,要么在返回到堆栈顶部时至少被调用.

我假设我可以手动调用willAnimateRotationToInterfaceOrientation:在pop之前但感觉不对.

我错过了什么?

iphone orientation ipad

11
推荐指数
1
解决办法
2万
查看次数

自定义UISlider外观

要自定义UISlider的视觉外观,您可以设置拇指和轨迹图像.部分轨道图像被拉伸到适当的位置.从文档:

可拉伸区域位于两个端盖区域之间.端盖定义图像的部分保持原样并且不被拉伸.可拉伸区域是端盖之间的1点宽区域,可以复制以使图像看起来更长.

现在我遇到的问题是我的可拉伸区域需要超过1点宽.(这是一种模式)不幸的是,1点宽度似乎在SDK中是硬编码的.

任何人都知道如何解决这个问题?或者我是否必须从头开始编写自己的滑块?

cocoa-touch uikit uislider ios

10
推荐指数
2
解决办法
2万
查看次数

样条曲面插值

假设我有n个定义z轴表面的点

f(x1,y1) = 10
f(x2,y2) = 12
f(x3,y3) = 5
f(x4,y4) = 2
...
f(xn,yn) = 21
Run Code Online (Sandbox Code Playgroud)

现在我希望能够近似f(x,y).我正在寻找一种线性算法,尤其是样条逼近算法.一个示例算法或至少一些指针会很棒.

algorithm math 3d spline

8
推荐指数
1
解决办法
4328
查看次数

在脚本标题中选择rvm gemset

我想指定哪个ruby解释器以及在我的ruby脚本的头部中使用哪个gemset.有点像

#!/usr/bin/env source /usr/local/lib/rvm && rvm ruby-1.9.2@system
Run Code Online (Sandbox Code Playgroud)

会很好.

有关如何做到这一点的任何建议?

ruby bash shell rvm

7
推荐指数
3
解决办法
4861
查看次数

在动画期间进行UIView缩放

我有一个自定义UIView来显示平铺图像.

    - (void)drawRect:(CGRect)rect
    {
        ...
        CGContextRef context = UIGraphicsGetCurrentContext();       
        CGContextClipToRect(context,
             CGRectMake(0.0, 0.0, rect.size.width, rect.size.height));      
        CGContextDrawTiledImage(context, imageRect, imageRef);
        ...
    }
Run Code Online (Sandbox Code Playgroud)

现在我试图为该视图的大小调整设置动画.

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];

// change frame of view

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

我期望的是平铺区域只是增长,使瓷砖尺寸保持不变.相反,当区域增长时,视图的原始内容将缩放到新大小.至少在动画期间.所以在动画的开头和结尾都很好.在动画期间,瓷砖会扭曲.

为什么CA试图扩展?我怎么能阻止它这样做?我错过了什么?

iphone cocoa-touch core-animation uikit

6
推荐指数
2
解决办法
2万
查看次数

通过"后退"按钮在UINavigationController上弹出自定义segue

简单的故事板设置:UIViewController与UINavigationController.在表格单元格上单击自定义segue将新的UIViewController推送到导航堆栈.都好.但是按下导航栏中的"后退"按钮,它只使用默认的流行动画.

弹出后,如何告诉导航控制器使用我的自定义segue?我已经添加

- (UIStoryboardSegue *)segueForUnwindingToViewController:(UIViewController *)toViewController fromViewController:(UIViewController *)fromViewController identifier:(NSString *)identifier

- (BOOL)canPerformUnwindSegueAction:(SEL)action fromViewController:(UIViewController *)fromViewController withSender:(id)sender
Run Code Online (Sandbox Code Playgroud)

两个视图控制器,但它们根本没有被调用.

我错过了什么?

cocoa-touch uistoryboard uistoryboardsegue ios6

6
推荐指数
1
解决办法
4403
查看次数

如何在Go中使用双星球?

似乎Go是少数语言之一,似乎不理解文件globbing的双星("globstar")语法.至少这似乎没有按预期工作:

filepath.Glob(dir + "/**/*.bundle/*.txt")
Run Code Online (Sandbox Code Playgroud)

我错过了有关filepath实施的内容吗?是否有一个图书馆支持这个?

glob go

6
推荐指数
2
解决办法
3186
查看次数