通过在后台线程 – iPhone上渲染UIWebView来创buildUIImage

是否有人知道如何获得从UIWebView呈现的UIImage的方式或创意? 问题在于,这必须在后台线程上。 我将详细说明:我试图从多个UIWebViews每秒获取图像 – ,并将其显示在屏幕上(当然是iPhone)。 因为渲染一个图层到CGContext是一个CPU消耗的工作,我不想使用主线程,所以不要挂用户界面。 我到目前为止的尝试是: 我试图在webView的图层上使用renderInContext到UIGraphicalContext ,但是_WebTryThreadLock错误使webviews崩溃。 我试图创build一个CGBitmapContext ,并呈现webview的图层,但得到了相同的结果。 我尝试了一个copy方法(通过添加一个类别) CALayer ,深层复制所有的公共属性和子层。 之后,我尝试renderInContext我复制的图层。 我得到了一个部分 “正确”的UIImage – 意思是,并不是所有的图层都被渲染,例如,我只能得到网站的页眉(或页脚,或正文,或search栏,或只是一些框架)。 UIWebview的图层由各种types的CALayers组成,所以这可能是为什么这个接近不起作用。 我尝试在kCATransactionDisableActions中设置CATransaction ,但似乎并没有改变这种行为(两者都没有)。 我相当接近放弃。 你们中间有救世主吗?

iOS故事板 – 一次禁用故事板上的状态栏

当在Interface Builder使用Storyboard来完全禁用状态栏时, Xcode有一种方法,所以当我创build一个新的View Controller我不必一直推断“状态栏”为无。

相对于世界的DeviceMotion – multiplyByInverseOfAttitude

什么是正确的方式来使用CMAttitude:multiplyByInverseOfAttitude? 假设iOS5设备平放在桌子上,启动CMMotionManager后: CMMotionManager *motionManager = [[CMMotionManager alloc]init]; [motionManager startDeviceMotionUpdatesUsingReferenceFrame: CMAttitudeReferenceFrameXTrueNorthZVertical]; 之后,获取CMDeviceMotion对象: CMDeviceMotion *deviceMotion = [motionManager deviceMotion]; 我预计[deviceMotion态度]反映True North设备的旋转。 通过观察,[deviceMotion userAcceleration]报告设备参考框架中的加速度。 也就是说,将设备侧面移动(保持平放在桌面上)loggingx轴的加速度。 将设备旋转90°(仍然平坦)并将设备侧移到侧面仍报告x加速度。 将[deviceMotion userAcceleration]转换成南北/东西加速度而不是左右/前后加速的正确方法是什么? CMAttitude multiplyByInverseOfAttitude似乎没有必要,因为已经指定了一个参考框架,从文档中不清楚如何将这种态度应用于CMA加速。

iOS – MKMapView showAnnotations:animated:with padding?

我想能够放大我的MKMapView,以适应它的注释。 我已经设法使用iOS7的showAnnotations方法。 但我也想从地图视图边框添加一些填充或插入。 这是因为我有一个半透明的视图,覆盖了我的地图的顶部,我不希望注释成为这个视图的后面。 我试过这个: [self.mapView showAnnotations:annotations animated:YES]; [self.mapView setVisibleMapRect:self.mapView.visibleMapRect edgePadding:UIEdgeInsetsMake(100, 20, 10, 10) animated:NO]; 但是这不是我所希望的。 任何想法,我如何能做到这一点不同?

如何在iOS的uitableview中使用可重用的单元格

好。 我似乎对桌面的工作方式有了一个明确的理解。 有人请向我解释如何在桌面浏览器中重复使用单元格,特别是在滚动时? 我对此有一个主要的难点,就是当我在一个单元格中创build一个动作时,其他单元格会在我滚动时受到影响。 我试图使用一个数组作为模型的后端,但我仍然得到单元格,当没有设想。 要弄清楚的是,为什么当数组中的模型没有改变时,它们会发生改变。 一个简单的例子: 使用“like”button的表格视图单元格。 当我单击其中一个单元格中的button时,button文本更改为“不同”(到目前为止这么好)。 但是当我向下滚动时,其他单元格也显示“不同”,即使我没有select它们。 而当我向上滚动时,我原来select的单元格又改变了,新的单元格也改变了。 我似乎无法弄清楚这一点。 如果你能给我看一个可用的示例源代码,那将是非常棒的! 谢谢! – (void)viewDidLoad { [super viewDidLoad]; likeState = [[NSMutableArray alloc]init]; int i =0; for (i=0; i<20; i++) { [likeState addObject:[NSNumber numberWithInt:0]]; } } – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [myButton setTitle:@"Like" […]

粘滞的search栏和节标题行为类似于本机通讯录应用程序

我想在iPhone联系人应用程序中复制search栏的粘性行为。 当用户向下滚动视图时, search栏也随着视图一起下移 : 如果用户向上滚动,则表格相应地滚动,具有以下两种行为: (1)search栏保持固定在顶部 ,并且 (2) 后面的部分标题在search栏下方正确停止 : 当下一节标题出现时,前面的标题在search栏下消失: 注意:段落索引控件(右侧的az)也出现在search栏的顶部 。 Ergo,摆弄contentInset会把它的索引控件一起向下推。 我创build了一个自定义UIViewController ,添加了一个UITableView ,将其contentInset设置为search栏的高度。 我创build了一个UIView ,添加了search栏作为它的子视图,然后将UIView添加到UITableView 。 但是,如上所述,当用户滚动时,节标题仍然保持在零位,而不是在标题高度。 此外,节标题索引控制​​位置受到不利影响。 我会很感激解决这个问题。

编程iOS:关于根视图控制器的说明

通过这个问题,我想知道我是否理解Root View Controller的概念。 在iOS应用程序中,根视图控制器(RVC)是在启动时将其视图添加到UIWindow应用程序的控制器,是不是真的? [window addSubview:rvcController.View]; [window makeKeyAndVisible]; 现在,一个UIWindow也有一个rootViewController属性。 在运行前面的代码片段时,该属性是否被rvcController填充,还是必须显式设置? 然后,在UINavigationController中,可以设置与之前为入口点设置的RVC不同的RVC。 在这种情况下,我第一次添加一个控制器到navigationController堆栈(推上一个新的控制器),框架是否将该控制器设置为navigationController的RVC,还是必须通过initWithRootViewController方法显式设置它?

iOS XCode编译错误:无法执行命令:分割错误:11

我有一个在过去完美编译的项目,但在最后一次xcode更新(6.3.2)后,每当我尝试直接在设备上运行时,都会收到编译错误。 build立和运行在模拟器中工作正常。 档案function也正常工作。 但是不pipe我连接什么设备或者哪个设备运行的是iOS版本,我都会得到相同的编译错误: Stack dump: 0. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreImage.framework/Headers/CIFilter.h:221:39: current parser token 'NS_REQUIRES_NIL_TERMINATION' clang: error: unable to execute command: Segmentation fault: 11 clang: error: clang frontend command failed due to signal (use -v to see invocation) Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn) Target: arm-apple-darwin14.3.0 Thread model: posix clang: note: diagnostic msg: PLEASE submit […]

如何在xcode 5中创buildEntitlement.plist文件?

如何在xcode 5中创buildEntitlement.plist文件? 我已经下载了最新版本的xcode。 我想在我的项目中创buildEntitlement.plist文件。 请给我适当的步骤在xcode 5中创buildEntitlement.plist文件。

展开和折叠tableview单元格

我能够展开和折叠单元格,但是我想调用UITableViewCell中的函数(展开和折叠)来改变button标题。 导入UIKit 类MyTicketsTableViewController:UITableViewController { var selectedIndexPath:NSIndexPath? var extraHeight:CGFloat = 100 重写func viewDidLoad(){ super.viewDidLoad() } 覆盖func didReceiveMemoryWarning(){ super.didReceiveMemoryWarning() //处理任何可以重新创build的资源。 } 重写func tableView(tableView:UITableView,numberOfRowsInSection部分:Int) – > Int { 返回5 } 重写func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath) – > UITableViewCell { 让cell = tableView.dequeueReusableCellWithIdentifier(“cell”,forIndexPath:indexPath)as! MyTicketsTableViewCell 返回单元格 } 重写func tableView(tableView:UITableView,heightForRowAtIndexPath indexPath:NSIndexPath) – > CGFloat { if(selectedIndexPath!= nil && indexPath.compare(selectedIndexPath!)== NSComparisonResult.OrderedSame){ 返回230 + extraHeight […]