Tag: uiview

在Swift中animation自定义UIView属性

所有! 我创build了一个使用CoreGraphics的循环进度视图,看起来和更新像这样: 50% 75% 这个类是一个UIView类,它有一个名为“progress”的variables,它决定了多less圆被填充。 它运作良好,但我想能够animation变化的进度variables,使酒吧animation顺利。 我已经从无数的例子中看到,我需要有一个CALayer类和我所做的View类,但是它根本没有animation。 两个问题: 我可以保留在Core Graphics中绘制的graphics,还是需要以某种方式在CALayer中重绘它? 我目前(尝试)的解决scheme崩溃在: anim.fromValue = pres.progress底部。 这是怎么回事? class CircleProgressView: UIView { @IBInspectable var backFillColor: UIColor = UIColor.blueColor() @IBInspectable var fillColor: UIColor = UIColor.greenColor() @IBInspectable var strokeColor: UIColor = UIColor.greenColor() dynamic var progress: CGFloat = 0.00 { didSet { self.layer.setValue(progress, forKey: "progress") } } var distToDestination: CGFloat = […]

手势子视图和MKMapView在iOS – 基本的iOS

我有以下设置: mainViewController OverlayView – UIView mapView – MKMapView 我的OverlayView显示在mapView上并响应UIPanGestureRecognizer 现在,因为OverlayView是MapView以上,我不能得到缩放functionMapView的工作.. 我必须做些什么才能让mapView对捏和OverLayView做出反应来对Pan进行反应(就像现在这样)? 我现在的解决scheme只是在mainViewController中实现了pinch2zoomfunction,以便相应地缩放mapView,但它不如原来的Apple实现那样stream畅。

drawRect:/ renderInContext:问题

似乎有一个问题试图将我的观点绘制到上下文中。 我的基本设置是,我有一个视图控制器,拥有一个UIPageViewController ,其中我加载控制器的视图,可以由用户的手指绘制。 基本上我有一本书可以画出来。 当书中的页面被打开时,我通过调用来保存图像 – (UIImage *)wholeImage { // Render the layer into an image and return UIGraphicsBeginImageContext(self.bounds.size); [self.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *wholePageImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return wholePageImage; } 这个返回值然后被保存到一个文件。 但是,当我调用这个保存方法,然后行 [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 被击中,这似乎打电话给我的drawRect:方法,这是覆盖如下, – (void)drawRect:(CGRect)rect { // Draw the current state of the image [self.currentImage drawAtPoint:CGPointMake(0.0f, 0.0f)]; CGPoint midPoint1 = [self midPointOfPoint1:previousPoint1 point2:previousPoint2]; CGPoint […]

画面具影响performance

这里是我用于绘制UIView的掩码的代码。 问题是,如果我有超过5 UIViews在屏幕上的面具,它会影响性能时拖放UIViews:我怎样才能改善下面的代码? + (UIBezierPath *)roundedPathAtCenter:(CGPoint)center size:(CGSize)size corner:(CGFloat)corner { NSInteger width = size.width; NSInteger height = size.height; UIBezierPath *path = [UIBezierPath bezierPath]; // upper left corner [path moveToPoint: CGPointMake(center.x – width / 2.0f + corner / 2.0f, center.y – height / 2.0f + corner / 2.0f)]; // path to top center [path addQuadCurveToPoint: CGPointMake(center.x, center.y […]

我怎样才能得到与故事板创build的button的对象

我通过拖动故事板中的button图标在视图控制器上创build了一个button。 我以为这会产生一个对象。 有没有一种方法可以得到id,即该button的对象? 有没有一种方法可以为该button指定一个标签或标识符,我们可以用某些方法来引用它? 预先感谢您的回答。

在UIView里面添加UICollectionView而不用Storyboard

我有ViewController调用myVC与UITablewView – myTable 。 我想要的是从代码中添加一些UIView作为myTable的 headerView。 所以在myVC的 viewDidLoad()方法里面我加了这个代码 let topView = TopView() topView.frame.size.height = 100 topView.frame.size.width = myTable.frame.width myTable.tableHeaderView = featuredEventsView 我也创build了一个名为TopView.swift的文件 class TopView : UIView { override init(frame: CGRect) { super.init(frame: frame) self.backgroundColor = .red } required init?(coder aDecoder: NSCoder) {…..} } 它正在工作,因为它应该。 我在myTable的headerView中看到红色的UIView。 现在我想在topView中添加UICollectionView,我在这里有问题。 我正在尝试做类似的事情 class TopView : UIView, UICollectionViewDataSource, UICollectionViewDelegate { override […]

在图像尺寸缩小的同时显示HUD

我有一个应用程序,用户使用相机拍照,然后select使用照片。 以下方法被调用: – (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 在这个方法中,我检查图像的NSData长度,如果数据(Kb)大小太大,则重新调整实际图像大小,然后再次检查。 这样我只能缩小量以保持最高的质量/尺寸的图像,而不是一个特定的大小w / h。 问题我正在尝试向用户显示HUD,同时发生“图像缩放”。 HUD目前没有显示,这是我所尝试过的。 // Check if the image size is too large if ((imageData.length/1024) >= 1024) { MBProgressHUD *HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; HUD.dimBackground = YES; HUD.labelText = NSLocalizedString(@"HUDHomeLoadingTableData", @"Home View Controller – Loading Table Data"); HUD.removeFromSuperViewOnHide = YES; while ((imageData.length/1024) >= 1024) { NSLog(@"While […]

iOS – 使用分隔视图调整垂直视图的大小

这个问题类似于我在这里问的问题。 罗布回答我,他的代码完美的工作。 我正在尝试做同样的事情,但是让视图垂直。 这是我现在拥有的。 我的viewDidLoad : UIView *previousContentView = nil; for (NSInteger i = 0; i < 4; i++) { UIView *contentView = [self addRandomColoredView]; [self.view.leadingAnchor constraintEqualToAnchor:contentView.leadingAnchor].active = true; [self.view.trailingAnchor constraintEqualToAnchor:contentView.trailingAnchor].active = true; if (previousContentView) { VerticalSeparatorView *view = [[VerticalSeparatorView alloc] init]; [view addSeparatorBetweenView:previousContentView secondView:contentView]; NSLayoutConstraint *width = [contentView.widthAnchor constraintEqualToAnchor:previousContentView.widthAnchor]; width.priority = 250; width.active = […]

UIView图层的子图层在每次出现视图时显示不同/随机

我有一个简单的自定义CALayer在我的UIView上创build一个叠加渐变效果。 这里是代码: class GradientLayer: CALayer { var locations: [CGFloat]? var origin: CGPoint? var radius: CGFloat? var color: CGColor? convenience init(view: UIView, locations: [CGFloat]?, origin: CGPoint?, radius: CGFloat?, color: UIColor?) { self.init() self.locations = locations self.origin = origin self.radius = radius self.color = color?.CGColor self.frame = view.bounds } override func drawInContext(ctx: CGContext) { super.drawInContext(ctx) guard let […]

如果在最清晰的视图中显示并且不同的视图可以处理它们时,如何忽略触摸事件

我有一个清晰的UIView,它附有手势识别器。 这个清晰的uiview覆盖了整个超级视图,可以从任何地方调用手势。 在这个清晰的UIView下,坐着不同的组件,比如表格,button,collectionview等等 清楚的UIView不知道什么是在任何时候。 我想要什么 – 如果一个在清晰的视图下的视图可以处理触摸事件(或任何types的手势) – 清晰的视图应该忽略该事件 – 事件将通过可以处理它的底层视图。 我试过了 -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 但我不知道如何确保底层视图可以处理它。