Tag: 卡拉OK

镜像UIView

我有一个透明背景的UIView和一些button。 我想捕捉视图的graphics,缩小它,并重画(镜像)在屏幕上的其他地方。 (在另一个视图之上。)button可以改变,所以它不是静态的。 什么是最好的方法来做到这一点?

CALayer使用对angular虚线渲染问题

我使用下面的代码创build了一个虚线的CAShapeLayer 。 当它的path在完全水平的平面上时,线条正确绘制。 然而,只要path上下移动,线路就会遇到一些问题。 以图像为例。 CGMutablePathRef linePath = CGPathCreateMutable(); CGPathMoveToPoint(linePath, NULL, startShapeLayer.centerX, startShapeLayer.centerY); CGPathAddLineToPoint(linePath, NULL, endShapeCenter.x, endShapeCenter.y); CGPathCloseSubpath(linePath); CAShapeLayer *lineLayer = [CAShapeLayer layer]; lineLayer.path = linePath; lineLayer.fillColor = [UIColor clearColor].CGColor; lineLayer.strokeColor = [UIColor whiteColor].CGColor; lineLayer.lineCap = kCALineCapRound; lineLayer.lineDashPattern = @[@5, @5]; lineLayer.lineDashPhase = 5.0; lineLayer.lineWidth = 1.0; 如果任何人有关于绘制这些形状的build议,这将是非常好的听到。

如何重绘只有一个特定的图层? (IOS,SWIFT)

我有我的UIView 。 我在我的UIView画东西。 我添加了一个CALayer到我的UIView 。 现在我想让我的控制器只重绘我添加的CALayer。 我怎么做 ? 在我的实际代码中,它将重绘主视图。 我怎样才能重绘我的子视图(myshapelayer)? override func drawRect(rect: CGRect) { var myshapelayer:CAShapeLayer=CAShapeLayer(); var testbezier:UIBezierPath=UIBezierPath(); testbezier.moveToPoint(CGPoint(x: 60, y: 80)); … … myshapelayer.strokeColor=UIColor.blueColor().CGColor; myshapelayer.path=testbezier.CGPath; newlayer.addSublayer(myshapelayer) <draw on my main view> 控制器: myview.setNeedsDisplay();

调用layer.setNeedsDisplay()显示黑色背景

当我在我的UIView的CALayer(直接或通过needsDisplayOnBoundsChange )调用setNeedsDisplay()时,它将背景绘制为黑色。 myView.layer.setNeedsDisplay() 当我直接调用UIView上的setNeedsDisplay()时,它不会显示为黑色: myView.setNeedsDisplay() 为什么会发生这种情况,我该如何解决?

在CALayer的display / drawRect方法中究竟会发生什么?

如果这两种方法中的哪一种是合适的,则可以: 更改CATextLayer的文本 将不同的图像加载到CAImageLayer中 告诉子层更新自己

iOS方面填充图像调整与内容alignment左/顶部边缘

我正在开发iOS-7的通用应用程序。 这个特定的问题只针对iPad。 我想放置一个图像作为视图控制器的根视图的背景,即图像应填充整个屏幕。 1x图像的大小:768×1024。 这适用于纵向方向,因为iPad的非视网膜分辨率也是纵向768×1024。 在风景然而,图像不适合。 我曾尝试使用ScaleToFit,但由于图像的长宽比不保留,我不能使用ScaleToFit(它们是图像中的东西,当两个坐标轴不成比例缩放时,看起来很奇怪)。 AspectFillresize似乎最适合我的需要,但他们是一个小问题。 正如Apple文档中所定义的那样:“内容被resize以完全填充边界矩形,同时仍然保留内容的方面, 内容以它超出的轴为中心 ”。 我不希望内容在它超出的轴居中,我想它被alignment到顶部/左边缘。 所以基本上我想要两件事情: 看点填充 内容在左边/上边保持alignment。 有没有可能做到这一点。 任何代码片段将是伟大的。 谢谢

带透明渐变的UITableView顶部和底部

我已经search了这个论坛,谷歌和其他论坛,并没有find我的特定问题的答案。 基本上,我有一个包含UITableView的UIView 。 我遵循这个教程 ,它是部分成功的。 问题是渐变。 我有一个背后的UITableView背景图像。 所以随着细胞接近渐变,我想要显示背景,而不是白色。 我也发现这篇文章是我在哪里find的教程,但我不想用Matt自己的问题来劫持那篇文章。 任何帮助正确的方向将是伟大的! 编辑1:我知道我可以使用另一个图像的背景图像和中间切出,但我正在寻找AVOIDS使用PNG的解决scheme,如果可能的话。 编辑2:这是我现在得到的图像: EDIT3: 这是我的代码: 标题: @interface MyView : UIViewController { CAGradientLayer *_maskLayer; UITableView *_tableView; } @property (nonatomic, retain) CAGradientLayer *maskLayer; @property (nonatomic, retain) IBOutlet UITableView *tableView; 执行: @implementation HighScoresView_iPhone @synthesize tableView = _tableView; @synthesize maskLayer = _maskLayer; – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (![self maskLayer]) […]

为整个应用程序应用圆angular

我怎样才能实现应用到整个视图的圆angular如截图所示(请注意导航栏和键盘的angular都圆了)? 我试过为window.layer和window.rootViewController.view.layer设置cornerRadius = 10和masksToBounds = YES ,但只有底部的视图angular落变圆,导航栏仍然保持正方形。 更新。 将cornerRadius设置为window.layer实际上也会在顶部添加圆angular,但是除非cornerRadius大于20,否则这些angular在状态栏下不可见。

视网膜显示核心graphics的字体质量

试图理解为什么我得到CGContextShowTextAtPoint低质量的绘图? 见附图: 字母“W”是在CALayer上使用CGContextShowTextAtPoint绘制的,看起来非常像素化。 它旁边的button是一个标准的button,看起来像预期的高分辨率。 我想要得到的文字是高分辨率的。

如何更快地将视图渲染成图像?

我正在做放大镜的应用程序,它允许用户触摸屏幕并移动他的手指,将有一个放大镜与他的手指path。 我用截图实现它,并将图像分配给放大镜图像视图,如下所示: CGSize imageSize = frame.size; UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0); CGContextRef c = UIGraphicsGetCurrentContext(); CGContextScaleCTM(c, scaleFactor, scaleFactor); CGContextConcatCTM(c, CGAffineTransformMakeTranslation(-frame.origin.x, -frame.origin.y)); [self.layer renderInContext:c]; UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return screenshot; 问题是self.layer renderInContext速度很慢,所以用户在移动手指的时候感觉不舒服。 而我试图在其他线程中运行self.layer renderInContext ,但是,这使放大镜图像看起来很奇怪,因为放大镜中的图像显示延迟。 有没有更好的方法来渲染视图到图像? renderInContext:使用GPU?