标签: uicontrol

如何禁用UIButton的高亮控制状态?

我有一个UIButton,当被选中时,触摸时不应改变状态.默认行为是它在触摸时处于UIControlStateHighlighted,这让我很生气.

建议?

cocoa-touch uibutton uikit uicontrol ios

140
推荐指数
7
解决办法
8万
查看次数

如何正确子类UIControl?

我不想要UIButton或类似的东西.我想UIControl直接子类化并制作我自己的非常特殊的控件.

但由于某种原因,我所覆盖的任何方法都没有被调用过.目标动作的东西起作用,目标接收适当的动作消息.但是,在我的UIControl子类中,我必须捕获触摸坐标,这样做的唯一方法似乎是覆盖这些人:

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
    NSLog(@"begin touch track");
    return YES;
}

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event {
    NSLog(@"continue touch track");
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

它们永远不会被调用,即使它UIControl是使用指定的初始化程序实例化的UIView,initWithFrame:.

我可以找到的所有示例总是使用UIButtonUISlider作为子类的基础,但我想更接近,UIControl因为这是我想要的源:快速和未延迟的触摸坐标.

objective-c uicontrol ios

66
推荐指数
5
解决办法
4万
查看次数

我可以使用UIControlState的自定义值来控制自己吗?

有没有办法为a设置自定义状态 - 不是现有UIControlState值之一UIControl

UIControlSate枚举中,有16位可用于自定义控件状态:

UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use
Run Code Online (Sandbox Code Playgroud)

问题是,UIControlstate属性是只读的.

我想为我UIButton的自定义状态设置不同的背景图像.

cocoa-touch objective-c uicontrol ios

28
推荐指数
2
解决办法
8952
查看次数

如何在故事板中添加自定义UIControl类?

我有一个自定义的UIControl类,我想在我的故事板中使用.我遇到问题,因为Storyboard控制台中的对象库中没有UIControl.

我尝试添加一个UIView并为其分配我的自定义UIControl类,但它似乎没有注册我需要控件使用的事件(Value Changed,Touch Drag Inside,Touch Up Inside).

在调试时,我打破了与事件相关的操作,看起来甚至没有调用它们.

如何在故事板中正确使用我的自定义UIControl类?

objective-c storyboard uicontrol ios swift

23
推荐指数
1
解决办法
8147
查看次数

UIControl未接收到触摸

我有一个UIControl实现了触摸开始方法,如下所示:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [super touchesBegan:touches withEvent:event];
    //More code goes here
Run Code Online (Sandbox Code Playgroud)

UIControl的这个子类在视图控制器中实例化,然后作为子视图添加到该视图控制器.我在UIControl的touches begin方法中有一个断点,并且该方法永远不会被调用.我一直在做一些阅读,看起来View Controller有一些逻辑决定是否将触摸事件传递给它的子视图.奇怪的是,我在同一个视图控制器中有一个不同的UIControl子类,触摸事件在用户触摸时传递给它!这是完整的代码:

.H

#import <UIKit/UIKit.h>

@interface CustomSegment : UIView
@property (nonatomic, strong) UIImageView *bgImageView;
@property (nonatomic, assign) NSInteger segments;
@property (nonatomic, strong) NSArray *touchDownImages;
@property (nonatomic, readonly, assign) NSInteger selectedIndex;
@property (nonatomic, weak) id delegate;


- (id)initWithPoint:(CGPoint)point numberOfSegments:(NSInteger)_segments andTouchDownImages:(NSArray *)_touchDownImages;
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
@end
Run Code Online (Sandbox Code Playgroud)

.M

#import "CustomSegment.h"

@implementation CustomSegment
@synthesize bgImageView, segments, touchDownImages, selectedIndex, delegate;

- (id)initWithPoint:(CGPoint)point
   numberOfSegments:(NSInteger)_segments
           andTouchDownImages:(NSArray *)_touchDownImages  
{  
    self = …
Run Code Online (Sandbox Code Playgroud)

iphone uitouch uicontrol ios

20
推荐指数
1
解决办法
1万
查看次数

UIButton没有在iOS 5中调用操作,但在iOS 6中工作

我有一个UIButton从xib文件加载作为IBOutlet视图控制器的属性.我将一个选择器附加到viewDidLoad我的视图控制器中的按钮:

[_myButton addTarget:self action:@selector(mySelector) forControlEvents:UIControlEventTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

在iOS 6中一切正常,但是当我在iOS 5.0中的模拟器上运行时,选择器不会被调用.触摸时按钮会突出显示.

另一件需要注意的事情是按钮UIView位于UITapGestureRecognizer添加了它的按钮中.在UITapGestureRecognizer这种观点被调用的的iOS 5.0当按钮被窃听,(它不会被调用在iOS 6中,其中按钮的选择被称为替代).

我没有运行iOS 5的设备,所以我没有在设备上测试过,只是模拟器.

有谁知道这里发生了什么,以及如何解决它?

uibutton uicontrol ios ios5 ios6

20
推荐指数
1
解决办法
3925
查看次数

突出显示UIControl子类


基本上我需要一个图像按钮,特别是一个自定义对象:
1)在点击时调用控制器的动作
2)封装自定义数据
3)由包装器视图自动移动(不相关)

好吧,我用一个子类得到了所有这些UIControl(因为UIButton不建议使用子类化UIImageView,并且子类化很难管理第1点).但现在突出它的正确方法是什么?我想以任何方式点击控件(即使是简单的alpha瞬间减少).

随着beginTrackingWithTouchendTrackingWithTouch我无法识别唯一的UIControlEventTouchUpInside事件.

控制器中的视图动画?在我看来,这是一个粗略的解决方案

有一个简单而直接的解决方案吗?

谢谢 :(

iphone highlighting uibutton uiimageview uicontrol

18
推荐指数
2
解决办法
7810
查看次数

在Swift中覆盖UIButton的setEnabled方法

在Swift中,UIControl似乎没有setEnabled:方法.有没有办法检测控制状态何时发生变化?

uibutton uicontrol ios swift swift2

14
推荐指数
1
解决办法
5000
查看次数

检测calloutAccessoryControlTapped只点击rightCalloutAccessoryView

calloutAccessoryControlTapped也叫我上标注视图只需轻按和这种行为是正确的.但是,我如何检测用户是否已经点击了正确的附件视图(在我的情况下是一个详细的公开按钮)而不仅仅是在视图中?

我添加了一个简单的检查,但它不起作用.

import UIKit
import MapKit

extension MapVC: MKMapViewDelegate, CLLocationManagerDelegate
{    
    func mapView(mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl)
    {
        if control == view.rightCalloutAccessoryView
        {
            ... // enter here even if I tapped on the view annotation and not on button
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

mapkit uicontrol ios swift

12
推荐指数
1
解决办法
1739
查看次数

11
推荐指数
1
解决办法
4万
查看次数