我有一个自定义的UISlider,我想用它向用户显示信息,我不希望用户能够与滑块进行交互.我试过了
mySlider.enabled = NO;
Run Code Online (Sandbox Code Playgroud)
但滑块变灰,看起来不像我想要的样子.
那么,如何将UIControl设置为禁用而不"灰化"它.
我通过以下代码创建了一个名为ToggleImageControl的UIControl的子类(参考UITableViewCell中的以下帖子Checkbox图像切换)
@interface ToggleImageControl : UIControl
{
BOOL photoIsStarred;
UIImageView *imageView;
UIImage *normalImage;
UIImage *selectedImage;
}
@property (nonatomic, assign) BOOL photoIsStarred;
@property (nonatomic, retain) UIImageView *imageView;
@property (nonatomic, retain) UIImage *normalImage;
@property (nonatomic, retain) UIImage *selectedImage;
- (void) toggleImage;
@end
@implementation ToggleImageControl
@synthesize photoIsStarred, imageView, normalImage,selectedImage;
- (id)initWithFrame:(CGRect)frame
{
NSLog(@"in inti with frame method");
self.normalImage = [UIImage imageNamed: @"blank_star.png"];
self.selectedImage = [UIImage imageNamed: @"star.png"];
self.imageView = [[UIImageView alloc] initWithImage: normalImage];
// set imageView frame
[self addSubview: imageView]; …Run Code Online (Sandbox Code Playgroud) 我有一个客户希望我修改UIStepper的自动重复行为.
如果用户选择触摸并保持说步进器的+按钮,则步进器的值开始以每半秒左右的速率增加1秒,然后在约3秒后,值开始变化得更快.
无论如何都要修改它的工作原理,例如,如果用户点击并保持,值会立即以更快的速率增加?
我查看了UIStepped文档,但我没有看到任何相关内容,但我想知道是否有办法通过IBAction或其他方式来做到这一点.
我有一个UIScrollView实例(scrollview),以及作为子视图放在scrollview上的许多UIControl实例.一切都在iOS 8之前运行良好,但scrollview现在在iOS 8下无法滚动.
似乎UIControl实例吃触摸事件,和scrollview的delaysContentTouches被iOS 8的下断裂.
刚发现UITableView也有这个问题.
一个普通的 UIButton 应该是这样的(我知道按钮应该有与其他文本不同的颜色,但这是一个特例):
我想使用selectedUIButton的属性来确定它是否应该是粗体,并且我已经.Selected使用以下代码将控件状态设置为具有粗体文本:
let boldedOption = [NSFontAttributeName: UIFont.boldSystemFontOfSize(15), NSForegroundColorAttributeName: UIColor.whiteColor()]
signInButton.setAttributedTitle(NSAttributedString(string: "SIGN IN", attributes: boldedOption), forState: .Selected)
Run Code Online (Sandbox Code Playgroud)
但是,当我以编程方式将按钮的selected属性设置为 true 时,结果如下:
我最初想要实现的是,每当selectedUIButton的属性为 时,按钮都会具有粗体文本true,但在这种情况下,边框会妨碍,并且文本当然也不是白色的。
有什么方法可以根据用户输入的selected属性动态加粗 UIButton 的文本,还是我必须用布尔值将另一个不太优雅的解决方案组合在一起?
我正在寻找一个可以用作复选框的按钮,并使用户能够以开/关方式切换复选框(未勾选/勾选).目前我使用属性检查器设置我的按钮,包括"标题"为"X","文本颜色"为红色.
一旦加载,按钮就会出现一个红色的"X",一旦点击它就会变成绿色的勾号.
我的问题是......你如何再次点击按钮以恢复到红色X(它的原始状态),每当点击一个循环继续?
@IBAction func check2(_ sender: UIButton) {
sender.setTitle("?", for: .normal)
sender.setTitleColor(UIColor.green, for: UIControlState.normal)
}
Run Code Online (Sandbox Code Playgroud)
谢谢
单击按钮图像时如何在按钮中设置图像显示该按钮run.backgroundColor = [UIColor redColor]我试试这个但它不起作用,
嗨我想在按下按钮后改变按钮的背景,即按钮不应该变回上一张图像.
但是,我无法这样做.我的代码如下.任何人都可以建议我在点击按钮后如何将图像更改为"custom_button_highlight"?
UIImage *buttonImageNormal = [UIImage imageNamed:@"custom_button"];
UIImage *stretchableButtonImageNormal = [buttonImageNormal
stretchableImageWithLeftCapWidth:12 topCapHeight:0];
UIImage *buttonImagePressed = [UIImage imageNamed:@"custom_button_highlight"];
UIImage *stretchableButtonImagePressed = [buttonImagePressed
stretchableImageWithLeftCapWidth:12 topCapHeight:0];
button.titleLabel.font = [UIFont boldSystemFontOfSize:14];
[button setBackgroundImage:stretchableButtonImageNormal
forState:UIControlStateNormal];
[button setBackgroundImage:stretchableButtonImagePressed
forState:UIControlStateHighlighted];
[button setBackgroundImage:stretchableButtonImagePressed
forState:UIControlStateSelected];
Run Code Online (Sandbox Code Playgroud) 我接下来写.所有代码都用ARC写的
@interface MPEvent : UIImageView
@property (nonatomic, unsafe_unretained) SEL action;
@property (nonatomic, strong) id target;
@end
Run Code Online (Sandbox Code Playgroud)
选择器是以正确方式声明的吗?
在实现中,我接下来使用我的属性:
- (void)sendActionToTargetFromView:(id)view {
[target performSelector:action withObject:view];
}
Run Code Online (Sandbox Code Playgroud)
但编译器向我显示警告
警告:语义问题:PerformSelector可能导致泄漏,因为其选择器未知
如何修复此警告?
我想创建自己的控件,它将由几个UILabel和几个UITextField组成.问题是我不知道从哪里开始!我是否直接将UIControl子类化,然后创建我的子视图并将它们添加到init中的主视图中?或者我使用layoutSubviews?我是否需要覆盖drawRect:?
我习惯于创建"Controller"类来处理添加子视图,但如果我将UIControl子类化,那么我不确定要设置的覆盖方法!
我以前从未这样做过,所以我真的很感激一些指针!
干杯!
我有一个简单的问题,但它让我感到困惑.以下代码获取UIControlTouchUpInside的UNDEFINED错误.我需要包含或导入什么?如果我注释掉这一行,它就可以了.这意味着forState:定义了UIControlStateNormal.我是新人,所以希望你能提供帮助.
UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Accept?" forState:UIControlStateNormal];
[button addTarget:self action:@selector(acceptTapped) forControlEvents:UIControlTouchUpInside];
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用HMSegmentedControl.我在视图控制器A中创建了一个HMSegmentedControl实例,然后跳转到视图控制器B来收集数据,如下所示:
[self presentViewController:vc animated:YES completion:nil];
然后我回去查看控制器A并根据视图控制器B中的值更改了HMSegmentedControl的标题.我曾经setSectionTitles:做过这个工作.在我点击其中一个标题之前标题没有刷新,但我希望它立即刷新.怎么做?
我尝试过self.view setNeedsDisplay但没有奏效.
uicontrol ×12
ios ×9
uibutton ×5
iphone ×4
objective-c ×4
swift ×2
cocoa-touch ×1
ios5 ×1
ios8 ×1
ipad ×1
subclass ×1
subclassing ×1
uiimage ×1
uiimageview ×1
uikit ×1
uiscrollview ×1
uislider ×1
uistepper ×1
uitableview ×1