小编Ste*_*ner的帖子

cameraOverlayView阻止使用allowsEditing进行编辑

在拍摄照片后进行编辑(移动和缩放)在我的应用程序中使用此行正常工作:

[imagePicker setAllowsEditing:YES];
Run Code Online (Sandbox Code Playgroud)

但如果我也使用cameraOverlayView,则编辑模式不再起作用.屏幕出现,但平移和捏动手势不会发生任何事情.

我正在使用你的普通图像选择器控制器:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
Run Code Online (Sandbox Code Playgroud)

我添加了一个相机覆盖视图,从自定义视图控制器的视图创建:

CameraOverlayViewController *overlayController = [[CameraOverlayViewController alloc] init];
UIView *overlayView = overlayController.view;
[imagePicker setCameraOverlayView:overlayView];
Run Code Online (Sandbox Code Playgroud)

在IB中,该视图被设置为允许用户交互和多次触摸,这允许其在拍摄照片时进行缩放和聚焦.但是一旦拍摄照片并进入编辑模式,您就无法平移或捏合移动或缩放照片.

我错过了什么?

camera editing uiimagepickercontroller ios camera-overlay

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

我们可以直接设置NSFont的font-weight或font-style,而不是更改字体名称吗?

前面的问题:

我们可以直接访问属性字符串的font-weight和font-style信息吗?或者我们可以创建一个新的字符串,我们可以设置这些信息吗?

说明:

在iOS 6中,您可以将选区切换为粗体或斜体.但它的工作方式令人烦恼:它不会改变Apple向我们公开的NSFontAttributeName(例如,将字体名称从"HelveticaNeue"更改为"HelveticaNeue-Bold").相反,它将font-family保留为"Helvetica Neue",并将"font-weight"更改为样式字符串中的粗体.如果您要询问属性文本的实例以获取其描述,您会看到类似这样的字体信息:

NSFont = "<UICFFont: 0x1fbc53a0> font-family: \"Helvetica Neue\"; font-weight: bold; font-style: normal; font-size: 16px";
Run Code Online (Sandbox Code Playgroud)

这会产生问题.我们无法在保留粗体和斜体样式信息的同时更改字体.如果你跳过扫描旧的属性字符串以获取样式信息,创建一个带有新字体的新字符串,然后更改字体属性名称(例如,使用"Courier-Bold"),无论你希望它在哪里粗体),创建一个新的问题:如果您尝试切换字体恢复正常(非粗体),你将代替有一个字体名称,如"信使大胆" 字体粗细为"粗体",因为样式信息尚未设置为粗体.当然,切换不会改变字体名称.因此,您实际上创建了一种在用户切换所选文本时无法再更改的字体.用户将按下上下文菜单中的"粗体"按钮,但它不会执行任何操作,因为粗体现在已经硬编码到字体名称中,您可能会说.

如果您转到其他路径并尝试在UITextView中覆盖"toggleBoldface"和"toggleItalic",则实际上似乎无法防止样式字符串中的样式信息被更改.在切换事件期间,您似乎无法单独更改字体名称.

所以,问题是:我们可以直接以某种方式访问​​font-weight和font-style信息吗?或者我们可以创建一个新的字符串,我们可以设置这些信息吗?这将解决尝试从一种字体切换到另一种字体并保留样式信息的问题.

并进行了双重澄清:

我们在谈论iOS.为某些字符范围设置属性字符串的字体属性(NSFontAttributeName)时,内部iOS会创建带有样式字符串的NSFont.如果您自己设置了字体属性,则样式字符串将显示为"font-weight:normal; font-style:normal".但是这个样式字符串是存储UITextView(通过切换)中设置的粗体和斜体信息的位置.

fonts styling ios

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

如果凌乱的控制器更快,为什么最好使用Rails范围?

我一直在尝试使用范围来链接Arel查询,而不仅仅是使用我在控制器中编写的一些冗长的逻辑。但是作用域比仅获取所有记录然后用某种逻辑筛选它们要慢。那么,我想知道为什么范围会更好。

这是我在做什么:

  • 一个问题有很多答案
  • 一个答案属于一个问题
  • 一个问题具有“ question_type”列,该列用于对其进行排序

首先,作用域方式

issue.rb:

scope :answered, joins(:answers).order('answers.created_at desc')
scope :dogs, where(:question_type => "dogs")
scope :cats, where(:question_type => "cats")
scope :mermaids, where(:question_type => "mermaids")
Run Code Online (Sandbox Code Playgroud)

在questions_controller.rb中:

@dogs_recently_answered = Question.answered.dogs.uniq[0..9]
@cats_recently_answered = Question.answered.cats.uniq[0..9]
@mermaids_recently_answered = Question.answered.mermaids.uniq[0..9]
Run Code Online (Sandbox Code Playgroud)

然后在视图中,循环浏览这些实例变量(现在是最多包含10个元素的数组)并显示结果。

以下是加载页面所需的时间(五个不同的时间):

在535毫秒内完成200 OK(查看:189.6毫秒| ActiveRecord:46.2毫秒)

在573毫秒内完成200 OK(查看:186.0毫秒| ActiveRecord:46.3毫秒)

在577毫秒内完成200 OK(查看:189.0毫秒| ActiveRecord:45.6毫秒)

在532毫秒内完成200 OK(查看:182.9毫秒| ActiveRecord:46.1毫秒)

在577毫秒内完成200 OK(查看:186.7毫秒| ActiveRecord:46.9毫秒)

现在,凌乱的控制器方式...

@answers = Answer.order("created_at desc")
@all_answered = []
@answers.each {|answer| @all_answered << answer.question}
@recently_answered = @all_answered.uniq
@dogs_all_answered = []
@cats_all_answered = []
@mermaids_all_answered = []
@recently_answered.each …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails arel named-scopes

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

''不是有效的unicode字符,但在unicode字符集中?

简短的故事:我无法通过使用Ruby on Rails应用程序中的文本字段(使用默认的UTF-8编码)或直接使用MySQL GUI输入,将像'?'这样的实体存储在MySQL数据库中应用程序.

据我所知,所有中文字符和字根都可以毫无问题地输入到数据库中,但不能输入这些很少输入的"字符组件".上面提到的字符是unicode U + 20089和html实体&#131209; 我可以通过输入<html>&#131209;</html>和删除html转义来在页面上显示它,但我想将它存储为unicode字符并保持html转义到位.还有许多其他中国"组件"(全部字符的一部分,通常由2或3个笔画组成)导致同样的问题.

根据这个页面,提到的字符在UTF-8字符集中:http://www.fileformat.info/info/unicode/char/20089/charset_support.htm

但是在邻近的'... 20089/index.htm'页面上,有一个警告说它不是一个有效的unicode字符.

作为参考,可以在Mac OS X中找到该实体,方法是搜索字符调色板(国际菜单,"显示角色调色板"),按照激进搜索,并查看"丿"激进.

如果这是太开放的道歉......这样的字符可以存储在基于UTF-8的数据库中吗?如何支持和不支持此字符,这两个字符都存在于字符集中且无效?

mysql unicode ruby-on-rails cjk utf8mb4

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

更改了iPhone应用程序目标名称,现在应用程序"已完成运行"

我对我的应用程序做了一个非常无辜的更改:我通过单击菜单托盘中的图标本身并更改其名称来更改目标的名称(我将其更改为"主题",重要的是奇怪的机会).之后,应用程序无法再在设备或模拟器中运行.

在设备上,它表示构建成功,然后它说"已完成在iPhone 4S上运行Appname"(其中Appname是我的应用程序的名称,我不妨保守绝密).

在模拟器上,它停在"附加到Appname.Appname"

在恐慌中,我将名称更改回原来的名称,问题仍然存在.

请注意,我没有手动更改设置中的任何内容,只是更改了图标名称本身.设置会自动将$(TARGET_NAME)替换为新名称,现在他们会再次使用旧名称替换它.

此外,请不要将此标记为其他"已完成运行"问题的副本,因为我已经指定了在遇到问题之前所做的确切更改,并且之前的帖子似乎都没有解决此问题.

iphone settings build target ios

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