在拍摄照片后进行编辑(移动和缩放)在我的应用程序中使用此行正常工作:
[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中,该视图被设置为允许用户交互和多次触摸,这允许其在拍摄照片时进行缩放和聚焦.但是一旦拍摄照片并进入编辑模式,您就无法平移或捏合移动或缩放照片.
我错过了什么?
前面的问题:
我们可以直接访问属性字符串的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(通过切换)中设置的粗体和斜体信息的位置.
我一直在尝试使用范围来链接Arel查询,而不仅仅是使用我在控制器中编写的一些冗长的逻辑。但是作用域比仅获取所有记录然后用某种逻辑筛选它们要慢。那么,我想知道为什么范围会更好。
这是我在做什么:
首先,作用域方式
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) 简短的故事:我无法通过使用Ruby on Rails应用程序中的文本字段(使用默认的UTF-8编码)或直接使用MySQL GUI输入,将像'?'这样的实体存储在MySQL数据库中应用程序.
据我所知,所有中文字符和字根都可以毫无问题地输入到数据库中,但不能输入这些很少输入的"字符组件".上面提到的字符是unicode U + 20089和html实体𠂉
我可以通过输入<html>𠂉</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的数据库中吗?如何支持和不支持此字符,这两个字符都存在于字符集中且无效?
我对我的应用程序做了一个非常无辜的更改:我通过单击菜单托盘中的图标本身并更改其名称来更改目标的名称(我将其更改为"主题",重要的是奇怪的机会).之后,应用程序无法再在设备或模拟器中运行.
在设备上,它表示构建成功,然后它说"已完成在iPhone 4S上运行Appname"(其中Appname是我的应用程序的名称,我不妨保守绝密).
在模拟器上,它停在"附加到Appname.Appname"
在恐慌中,我将名称更改回原来的名称,问题仍然存在.
请注意,我没有手动更改设置中的任何内容,只是更改了图标名称本身.设置会自动将$(TARGET_NAME)替换为新名称,现在他们会再次使用旧名称替换它.
此外,请不要将此标记为其他"已完成运行"问题的副本,因为我已经指定了在遇到问题之前所做的确切更改,并且之前的帖子似乎都没有解决此问题.