Tag: uiview

如何从我的UIView中只删除用户添加的子视图

我试图删除所有已添加到视图中的子视图,所以我实现了一个循环来遍历子视图,如下所示: for subview in view.subviews { println(subview) //subview.removeFromSuperview() } 我通过添加一个UILabel到我的视图来testing这个,然后运行这个代码。 输出包含我的UILabel,但也是一个_UILayoutGuide。 所以,我的问题是如何确定子视图是我添加的还是系统添加的子视图?

将故事板视图添加为以编程方式创build的视图的子视图

我已经创build了一个具有特定属性的特殊的UIView类,我这样做是以编程方式,因为它通常是空白的,但有时会包含其他视图。 我知道,如果我以编程方式创build一个UIView,我可以做一些像[specialView addSubview: aView]; 我的问题是,有一个UIView,我在故事板中创build,我需要将UIView作为子视图添加到我的特殊视图。 我已经连接它作为属性在我的ViewController,但是当我做同样的代码如上,没有任何反应。 思考?

如何添加UIViewController作为以编程方式创buildUIView创build的UIButton行动的目标?

我编程创build了一个UIView并添加了一个UIButton作为它的子视图。 我想要一个UIViewController成为该button操作的目标。 我该怎么做? 如果它是由Interface Builder创build的,那么使用IBAction很容易 。

用静态方法在UIView(切割孔)上用清晰的颜色绘图

我有一个iPhone应用程序,我需要实现以下方法: +(UITextView *)textView:(UITextView *) withCuttedRect:(CGRect)r 这个方法必须从UITextView剪切(用[UIColor clearColor]填充)rect r并返回UITextView对象。 用户将从切割孔中看到UITextView背后的视图。 如何做呢?

自定义animation属性返回NSNull?

只有一天的赏金! 你可以有一个自定义的animation属性工作与UIView animateWithDuration块语法? 我一直在为自定义CALayer上的自定义animation属性创build自己的隐式animation。 我已经设置了自定义UIView的背景层,并可以使用CATransaction来为自定义属性设置animation(在自定义示例中,我正在使用自定义属性circleColor更改圆的颜色)。 我知道UIView通过从UIView的actionForLayer:forKey: selector方法返回NSNull来closuresanimation属性。 然后,当属性包装在UIView animateWithDuration块UIView将返回animation 。 所以这将与backgroundColor ,不透明等工作。但是, 我的自定义属性circleColor仍然返回NSNull 。 我希望我为这个问题提供了足够的背景。 谢谢!

阻止用户与底层视图的交互

在我的应用程序中,我有一个覆盖视图,当一些处理和networking正在发生时显示。 它只是一个半透明的视图(UIView的子类),上面有一个加载指示器,填满整个屏幕。 我想阻止任何底层视图接收用户交互(例如,不应该滚动基础表视图,不按下button)。 在叠加视图中,我能做到这一点的最佳方式是什么?

UIView覆盖drawRect会导致视图不服从masksToBounds

我想重写我的自定义视图中UIView的drawRect:方法。 但是,我的观点有一个边界半径定义为: sub = [[[NSBundle mainBundle] loadNibNamed:@"ProfileView" owner:self options:nil] objectAtIndex:0]; [self addSubview:sub]; [sub setUserInteractionEnabled:YES]; [self setUserInteractionEnabled:YES]; CALayer *layer = sub.layer; layer.masksToBounds = YES; layer.borderWidth = 5.0; layer.borderColor = [UIColor whiteColor].CGColor; layer.cornerRadius = 30.0; 这完美地工作,并在我的视图周围放置一个带有边框半径的漂亮边框(不要介意后面的对angular/直线白线,它们与此视图无关): 但是,当我尝试重写我的视图中的drawRect:方法时,我可以看到一个黑色的背景不掩盖边界。 我没有做任何事情 (目前),这是我的代码: -(void)drawRect:(CGRect)rect{ [super drawRect:rect]; } 结果如下: 我只改变了绘制方法。 我怎样才能重写绘制方法,同时保持我的观点服从angular圆angular面具? 这是在iOS的错误,或者我错过了什么?

UIViewanimation块暂停animation和完成代码

我有一个animation块来执行一个简单的转换为基础的animation,完成后从其超视图中删除有问题的视图。 UIView *msgView = [[UIView alloc] initWithFrame:CGRectMake(160, 120, 160, 100)]; // Do stuff to set up the subviews of msgView. // Add the msgView to the superview (ViewController) that is going to display it. CATransform3D transform = CATransform3DMakeScale(2.5, 2.5, 1.0); [UIView animateWithDuration:5.0 animations:^(void){msgView.layer.transform = transform;} completion:^(BOOL finished){[msgView removeFromSuperview];}]; 然后,我使用http://developer.apple.com/library/ios/#qa/qa1673/_index.html中详细介绍的代码来暂停animation。 -(void)pauseLayer:(CALayer*)layer { CFTimeInterval pausedTime = [layer […]

一个更好的方法来animation调整UIView和子视图的大小?

示例屏幕截图: 什么是一个更好的方式来animation包含子视图的UIView的大小调整? 我目前的方法: 在截屏中,父UIView(橙色)有一个子视图UILabel(黄色+自动调整)。 animateWithDurationanimation调整父UIView框架的大小。 这种方法的问题是它不animation子视图的大小调整。 它突然改变,它应该在那里animation地缩放。 是明确animation的子视图最好的,还是有一个更有效的方法? (如CGAffineTransform?) 示例代码: – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.parentView = [[UIView alloc] initWithFrame:CGRectMake(10, 100, 200, 200)]; self.parentView.backgroundColor = [UIColor orangeColor]; [self.view addSubview:self.parentView]; self.childLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 180, 180)]; self.childLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; self.childLabel.backgroundColor = [UIColor yellowColor]; […]

在Swift中以编程方式添加UIGestureRecognizer子视图

我目前有一个子视图创build并添加到ViewDidLoad()中的UIView。 我正在尝试使用UIGestureRecognizers来检测一个水龙头,并取消隐藏一个特定的button。 我目前的代码: override func viewDidLoad() { super.viewDidLoad() architectView = CustomClass(frame: self.view.bounds) self.view.addSubview(architectView) let gestureRecognizer = UITapGestureRecognizer(target: self, action: "handleTap:") gestureRecognizer.delegate = self architectView.addGestureRecognizer(gestureRecognizer) } func handleTap(gestureRecognizer: UIGestureRecognizer) { let alert = UIAlertController(title: "Alert", message: "Message", preferredStyle: UIAlertControllerStyle.Alert) alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil)) self.presentViewController(alert, animated: true, completion: nil) } handleTap()函数是一个简单的testing,看看是否被认可的水龙头。 这个代码在按下时不会触发UIAlert? 我错过了什么?