我有一个IBAction连接到我的Interface Builder中的按钮.
是否可以在运行时从我的代码中更改按钮(在IB中)上的文本?
如何使UISegmentedControl中的一个按钮中的文本跨越多行?
我有一个应用程序,有许多不同的按钮排列在计算器,如方形/矩形格式.它实际上与默认的iOS计算器非常相似.大约有6行,每个按钮有4列.
问题
我遇到的问题涉及底行中的按钮(大约是iPhone 4屏幕的底部10).当按下它们时,它们不能正常工作,按下它们时必须按住它们(大约不到一秒钟)以注册"按下按钮".这与标准短抽头相反.
除此底行之外没有其他按钮以这种方式运行.
此外,如果这些按钮在其上边缘轻敲,它们会表现正常,一旦触摸就会响应.这让我相信按钮本身不是问题,但是我的视图布局存在一些问题.
还应注意,该问题仅存在于物理设备上.在模拟器上,按钮表现正常.
上下文
包含这些按钮的视图不是应用程序的根视图控制器.相反,它转变为如此(这里没什么特别的):
[self presentViewController:navController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
self是根视图控制器
我遇到问题的视图控制器包含在导航控制器中,并由根视图控制器以模态方式显示,您可以在上面看到.
到目前为止我尝试过的
打开和关闭自动布局:同样的问题
重新排列视图层次结构:我将有问题的按钮移动到所有其他视图的顶部和后面,结果相同:同样的问题
多个设备(iPhone 4,4s,5):同样的问题(虽然按钮在3.5英寸和4英寸模拟器上都能正常响应)
测试其他应用程序(当在其他应用程序上按下此区域中的按钮时,它们的行为正常)
附加信息
可能有一个简单的解决方案,但我无法弄清楚.
我正在使用故事板作为界面.
我从一个标签栏控制器开始,但在允许用户使用该应用程序之前,用户必须通过在开始时以模态方式推送的登录视图来验证自己.
我想在同一个故事板上配置loginview,但我无法找到如何链接故事板上的视图控制器和我的代码.
我做了什么:
无标签...
我想在故事板中设置a UITextView或a 的边框UILabel.可以吗?
以编程方式,它是setBorderColor和setBorderWidth.
但边界可以设置在故事板中吗?
我有一个iOS应用程序,我在故事板中创建了一些视图控制器,视图控制器的视图有一些子视图.现在我想在该视图中添加一些scrollview,并希望在该滚动视图中移动所有这些子视图.但问题是当我将这些视图拖动到scrollview时,界面构建器将这些子视图居中,所有位置信息都将丢失.
我不想让界面构建器这样做.有没有正确的方法来解决这个问题?我已经搜索过这个问题并找到了这两个解决方案,但在我的情况下没有一个是有用的.
将子视图添加到当前视图而不会弄乱视图中对象的定位 我无法使用此解决方案,因为这是在我想添加scrollview时将视图添加到另一个视图中.
XCode - 有没有办法将组件从一个视图拖到另一个视图而不会丢失它的框架? 此解决方案对我没有帮助,因为当我这样做时,故事板文件被搞砸了并且被破坏了.
我有3个segues到3个不同的视图.2实现没有问题,是在创建第三个问题时.
我有以下didSelectRowAtIndexPath方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@" ---------- did select row");
if(indexPath.section == 0){
if(indexPath.row == [self.data count]-1){
//prior to adding this, everything works
[self performSegueWithIdentifier:@"MoreComments" sender:self];
}else{
[self performSegueWithIdentifier:@"FriendView" sender:friend];
}
}else if(indexPath.section == 1){
if(indexPath.row == [self.data2 count]-1){
[self performSegueWithIdentifier:@"MorePosts" sender:self];
}else{
[self performSegueWithIdentifier:@"FriendView" sender:friend];
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下prepareForSeque方法:
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"MorePosts"]){
MorePostsViewController *mfamvc = segue.destinationViewController;
mfamvc.data = self.data;
}else if([segue.identifier isEqualToString:@"FriendView"]){
FriendViewController *fvc = segue.destinationViewController;
fvc.friend = friend;
}else if([segue.identifier isEqualToString:@"MoreComments"]){
MoreCommentsViewController *mcvc …Run Code Online (Sandbox Code Playgroud) interface-builder storyboard didselectrowatindexpath ios segue
我正在尝试使用此处描述的新IB_DESIGNABLE选项创建一个在Interface Builder中实时更新的自定义控件.
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect myFrame = self.bounds;
CGContextSetLineWidth(context, 10);
CGRectInset(myFrame, 5,5);
[[UIColor redColor] set];
UIRectFrame(myFrame);
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath;
plistPath = [bundle pathForResource:@"fileExample" ofType:@"plist"];
UIImage *tsliderOff = [UIImage imageNamed:@"btn_slider_off.png"];
[tsliderOff drawInRect:self.bounds];
}
Run Code Online (Sandbox Code Playgroud)
当我在模拟器中运行时,我得到一个红色的盒子,我的图像在中心(正如预期的那样):

但是当我尝试使用Interface Builder时,它只显示为一个红色框(中间没有图像):

当我调试它:Editor-> Debug Selected Views时,它显示从bundle中加载的任何内容都是nil.plistPath和tsliderOff都显示为nil.
我确保btn_slider_off.png包含在Targets-> myFrameWork-> Build Phases-> Copy Bundle Resources中.
知道为什么Interface Builder在编辑期间没有看到png文件,但在运行时显示正常吗?如果我无法加载任何图像来渲染,"创建在Interface Builder中渲染的自定义视图"有点受限制...
根据rickster的解决方案进行编辑
rickster向我指出了解决方案 - 问题是文件不在mainBundle中,它们存在于[NSBundle bundleForClass:[self class]]中; 看来[UIImage imageNamed:@"btn_slider_off.png"]会自动使用mainBundle.
以下代码有效!
#if !TARGET_INTERFACE_BUILDER
NSBundle *bundle = [NSBundle mainBundle];
#else
NSBundle *bundle = …Run Code Online (Sandbox Code Playgroud) 我正在WWDC 2014上观看Session 411的视频,引用" Interface Builder上有什么新内容 ",我正在尝试创建框架,以便让@IBDesignable类在Storyboard中预览我的更改,而无需运行应用程序.
@IBInspectable 当我将我的类添加到特定视图并使用以下代码正确呈现视图时,属性正确显示:
@IBDesignable
class MyView: UIView {
@IBInspectable var borderColor: UIColor = UIColor.clearColor() {
didSet {
layer.borderColor = borderColor.CGColor
}
}
@IBInspectable var borderWidth: CGFloat = 0 {
didSet {
layer.borderWidth = borderWidth
}
}
@IBInspectable var cornerRadius: CGFloat = 0 {
didSet {
layer.cornerRadius = cornerRadius
}
}
@IBInspectable var masksToBounds: Bool = false {
didSet {
layer.masksToBounds = masksToBounds
}
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到这些属性被添加到 …
Xcode表示没有布局问题,但正如你所看到的那样.我尝试了一切.苹果文档,YouTube,谷歌等.看来我做得对,但是我正在做的事情或其他事情导致这些问题.在尝试了一切之后,我终于让Xcode add missing constraints成为迄今为止最好的结果.我在9个UIImages上有9个按钮,所以我必须对按钮执行与UIImages相同的操作.我暂时把UIImages放在按钮的顶部,这样我就可以更容易地看到我在做什么了.我有2个截图.请指教.
开始

这是在使用Xcode的add missing constraints选项之后.排序我想要的但没有雪茄.

ios ×8
iphone ×4
xcode ×4
objective-c ×3
storyboard ×3
autolayout ×1
ios5 ×1
ios8 ×1
ipad ×1
segue ×1
swift ×1
uibutton ×1
xcode6 ×1