小编Bar*_*Naz的帖子

将文本行对齐到SVG的中心

我需要在SVG中输出多行文本.为此,我使用以下方案:

<text>
  <tspan> First line </tspan>
  <tspan> Second line </tspan>
</text>
Run Code Online (Sandbox Code Playgroud)

文本的第一行和第二行可以具有不同数量的字符,这些字符可以动态地改变.我希望第二行出现在第一行下面,并且两个文本都要居中.

我可以让第二条线通过添加出现在第一线下方dy="15"第二<tspan>.

我可以<tspan>通过添加text-anchor="middle"来对齐每个人的文本.

但是如何做那些相对中心的对齐<tspan>呢?

我尝试使用x="0"每个,<tspan>但显然它不起作用,因为每个<tspan>都有不同的宽度,较短的行中的渲染文本向左移动.

有没有办法<tspan>只使用CSS和/或SVG 对齐不同宽度的2 的中心.

css svg text alignment tspan

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

在构建阶段将docker-compose中的环境变量传递给容器

我正在尝试使用单个Dockerfile,多个docker-compose文件和多个envoronment_variables文件为多个环境创建配置.我需要它为每个环境使用具有python依赖关系的不同文件.

比方说,我们web在两个环境中创建服务:developmentproduction.为此,我创建了以下文件结构:

docker-compose-dev.yml
docker-compose-prod.yml
envs/
  dev.env
  prod.env
web/
  Dockerfile
  requirements_dev.txt 
  requirements_prod.txt
Run Code Online (Sandbox Code Playgroud)

目标是在容器的进程中实例化requirements_*.txt文件的正确名称.根据文档,我尝试了这种天真的方法,似乎不起作用:Dockerfilebuild

  1. 将名称定义为环境变量:
    • ENVS/dev.env: REQUIREMENTS=requirements_dev.txt
    • ENVS/prod.env: REQUIREMENTS=requirements_prod.txt
  2. Dockerfile中使用此环境变量:

    FROM python:3.5
    ENV PYTHONUNBUFFERED 1
    ENV APP_ROOT /usr/src/app
    ...
    COPY $REQUIREMENTS $APP_ROOT/
    RUN pip install -r $APP_ROOT/$REQUIREMENTS
    
    Run Code Online (Sandbox Code Playgroud)
  3. docker-compose配置中导入相应的定义:

    version: '2'
    
    services:
        web:
            build: ./web
            env_file:
                - envs/dev.env   # in docker-compose-dev.yml
                - envs/prod.env   # in docker-compose-prod.yml
            ...
    
    Run Code Online (Sandbox Code Playgroud)

当我运行时docker-compose up --build docker-compose-dev.yml, …

docker docker-compose

14
推荐指数
1
解决办法
6713
查看次数

格式化浮动以进行显示时,限制小数位数和总位数

我需要最有效地在有限宽度的区域中打印浮点值.我正在使用一个NSNumberFormatter,并且我将小数点后面的两个数字设置为默认值,这样当我有一个像234.25它的数字一样打印时:234.25.但是当我有1234.25我希望它打印为:1234.3,并且 11234.25应该打印11234.

我需要在该点后最多两位数,如果我在该点之后有数字,则最多总共五位数,但如果整数部分有更多,则还应打印超过五位数.

我看不到限制总位数的能力NSNumberFormatter.这是否意味着我应该用这种方式编写自己的函数来格式化数字?如果是这样,那么获取数字的整数和小数部分中的数字位数的正确方法是什么?我也更喜欢使用CGFLoat,而不是NSNumber避免额外的类型转换.

cocoa-touch decimal-point objective-c nsnumberformatter

8
推荐指数
2
解决办法
5763
查看次数

如何在AVCaptureVideoPreviewLayer中处理自动旋转?

我的应用程序支持除PortraitUpsideDown之外的所有方向.在我的视图层次结构中,我有一个AVCaptureVideoPreviewLayer作为顶视图中的子图层,即UIImageView.然后在视图层次结构下面是几个显示控件的叠加视图.

叠加视图在方向更改时正常工作,但我不知道如何使用此AVCaptureVideoPreviewLayer.我希望它的行为类似于Camera应用程序,以便previewLayer保持静止并且控件可以平滑地重新组织.现在,由于主视图在方向更改时旋转,我的预览图层也会旋转,这意味着在横向视图中它保持纵向视图,仅占用屏幕的一部分,相机的图片也旋转90度.我已设法手动旋转预览图层,但之后它有这个方向更改动画,这导致在动画期间看到背景一段时间.

那么在使previewLayer保持静止的同时自动旋转控件的正确方法是什么?

objective-c preview orientation autorotate ios

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

制作UIBezierPath的独立副本?

我有一个复杂的UIBezierCurve,我需要用一些特定的线参数绘制一次,然后再次绘制它作为与其他线参数的叠加,但我还需要曲线的最后部分比前一部分略短.

为此,我想创建曲线addLineToPoint:,moveToPoint:直到最后一部分,然后复制此曲线,并在原始曲线和复制曲线中以不同方式添加线条的最后一段.然后我抚摸原始曲线和复制曲线.

问题是它不能像我预期的那样工作.我通过以下方式创建曲线的副本:

UIBezierPath* copyCurve = [originalCurve copy];
Run Code Online (Sandbox Code Playgroud)

之后我在原始曲线中所做的绘图也应用于copyCurve,因此我不能对任何曲线进行独立绘制.

原始和副本之间的这种联系是什么原因,我怎么能摆脱它?

编辑1:我发现的解决方案是以下列方式创建副本:

UIBezierPath* copyCurve=[UIBezierPath bezierPathWithCGPath:CGPathCreateMutableCopy(originalCurve.CGPath)];
Run Code Online (Sandbox Code Playgroud)

由于这可以正常工作,可能问题在于我得到的副本的不变性

[originalCurve copy]
Run Code Online (Sandbox Code Playgroud)

cocoa drawing copy objective-c uibezierpath

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

按Django中相关模型的自定义QuerySet过滤

假设我有两个模型:BookAuthor

class Author(models.Model):
    name = models.CharField()
    country = models.CharField()
    approved = models.BooleanField()


class Book(models.Model):
    title = models.CharField()
    approved = models.BooleanField()
    author = models.ForeignKey(Author)
Run Code Online (Sandbox Code Playgroud)

这两个模型中的每一个都有一个approved属性,用于在网站上显示或隐藏对象。如果Book未获批准,则将其隐藏。如果Author不批准,他所有的书都会被隐藏起来。

为了以 DRY 方式定义这些标准,制作自定义 QuerySet 看起来是一个完美的解决方案:

class AuthorQuerySet(models.query.QuerySet):
    def for_site():
        return self.filter(approved=True)

class BookQuerySet(models.query.QuerySet):
    def for_site():
        reuturn self.filter(approved=True).filter(author__approved=True)
Run Code Online (Sandbox Code Playgroud)

将这些 QuerySets 连接到相应的模型后,可以像这样查询它们:Book.objects.for_site(),无需每次都对所有过滤进行硬编码。


尽管如此,这个解决方案仍然不完美。稍后我可以决定向作者添加另一个过滤器:

class AuthorQuerySet(models.query.QuerySet):
    def for_site():
        return self.filter(approved=True).exclude(country='Problematic Country')
Run Code Online (Sandbox Code Playgroud)

但是这个新过滤器只能在 中使用Author.objects.for_site(),而不能在 中使用Book.objects.for_site(),因为它是硬编码的。


所以我的问题是:是否可以在过滤不同模型时应用相关模型的自定义查询集,使其看起来类似于:

class BookQuerySet(models.query.QuerySet):
    def for_site():
        reuturn self.filter(approved=True).filter(author__for_site=True)
Run Code Online (Sandbox Code Playgroud)

哪里 …

django django-queryset

5
推荐指数
1
解决办法
1342
查看次数

Cocoa中的手动绑定

我有一个显示锁定的ImageView,通知是否已锁定打开的文件.锁定和解锁的情况我有2张图片.我希望将显示的图像与表示打开文件的对象的布尔值同步.

为此,我希望我的ViewController根据对象的锁定状态更改ImageView中的图像.因此object和ViewController都有一个属性"isLocked".

我该如何同步它们?在IB中很容易,但我不知道如何以编程方式进行.我尝试使用我的ViewController的初始化方法:

[ViewController bind:@"value" toObject:[ArrayController selection] withKeyPath:@"isLocked" options:nil];
Run Code Online (Sandbox Code Playgroud)

但它不起作用.在文档中,据说我必须在使用它之前公开我的绑定.

我尝试将以下代码放在我的对象的初始化方法中:

[self exposeBinding:@"isLocked"];
Run Code Online (Sandbox Code Playgroud)

但Xcode不承认这种方法.

有人有这种绑定建立的经验吗?

cocoa binding bind manual

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

如何在Objective-C中更改MacOS中的文件图标?

我的MacOS程序正在创建另一个文件的别名,我希望这个别名有一些指定的图标.如何使用Objective-C,最好是在Cocoa?

macos cocoa icons alias objective-c

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

使用ffmpeg库编译错误

我已经下载并安装了ffmpeg库.我想用它来阅读不同视频的单独帧并操纵它们.为此我尝试从这里遵循一些教程:http://dranger.com/ffmpeg/tutorial01.html 但我无法编译我的cpp文件,因为我得到以下编译:

Undefined symbols for architecture x86_64:
  "av_register_all()", referenced from:
      _main in cc9zyUBe.o
      _main in ccRz35d4.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

当我安装ffmpeg库时,我在./configure步骤中使用了arch = x86_64选项.我使用OS X Mountain Lion 10.8.2和gcc 4.2编译器.有人知道这个错误的原因是什么?提前致谢.

更新:我已经尝试了许多不同的安装选项,包括静态库,共享库,有/没有--arch = x86_64选项.也用自制软件安装,结果保持不变.图书馆无法识别.但是当我将它用作命令行工具时,ffmpeg二进制文件的效果非常好.

architecture gcc ffmpeg compilation

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

在Foundation选项卡中定期链接到URL

我正在使用Foundation 5.2.1,我想使用垂直选项卡进行导航.

<div class="small-1 column">
  <div class="languageTabs">
    <dl class="tabs vertical" data-tab>
      <dd><a href="/lang/uk">uk</a></dd>
      <dd><a href="/lang/ru">ru</a></dd>
      <dd><a href="/lang/en">en</a></dd>
    </dl>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这里不寻常的是我不使用链接到类似href="#section1"链接但链接到外部URL.当我单击任何选项卡时,它会突出显示为活动状态,但不会重定向到指定的URL.

有没有办法让外部页面的链接与Foundation中的选项卡一起使用,还是应该使用不同的东西?

tabs hyperlink zurb-foundation

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