我使用一些按钮创建了一个自定义键盘。我使用界面构建器创建了它们,然后创建了一个CustomKeyboardView文件..
所以我有3个文件
我正在将这个视图添加到我的UIViewController喜欢这个
-(void)createCustomKeyboard{
//kbdCustom is an instance of CustomKeyboardView
kbdCustom = [[[NSBundle mainBundle] loadNibNamed:@"CustomKeyBoardView"
owner:self options:nil] objectAtIndex:0];
kbdCustom.delegate = self;
CGRect frame = kbdCustom.frame;
frame.origin.x = 14.0;
frame.origin.y = 300.0;
kbdCustom.frame = frame;
kbdCustom.backgroundColor = [UIColor clearColor];
[self.view addSubview:kbdCustom];
[self.view bringSubviewToFront:kbdCustom];
}
Run Code Online (Sandbox Code Playgroud)
我在屏幕上看到自定义键盘。但我无法触摸任何按钮。
CustomKeyBoardView.m文件中没有什么花哨的 。我有一些按钮处理程序来处理键盘中每种不同类型的按钮。
@implementation CustomKeyBoardView
- (IBAction)numberPressed:(id)sender {
NSLog(@"Number pressed");
}
- (IBAction)specialCharsPressed:(id)sender {
NSLog(@"specialCharsPressed");
}
- (IBAction)clearTextPressed:(id)sender {
NSLog(@"clearTextPressed");
}
- (IBAction)enterButtonPressed:(id)sender {
NSLog(@"enterButtonPressed");
}
@end
Run Code Online (Sandbox Code Playgroud)
其他一些可能对您有帮助的要点(帮助我) …
我的界面构建器中有一个简单的StackView,间距相等:
当我运行应用程序时,按钮的位置和大小是正确的(完全如界面构建器中所示)但是当我尝试使用以下代码在中间的按钮的角落:
override func viewDidLoad() {
super.viewDidLoad()
let maskPath = UIBezierPath(roundedRect: button.bounds,
byRoundingCorners: [.bottomLeft,.bottomRight],
cornerRadii: CGSize(width: 10.0, height: 10.0))
let shape = CAShapeLayer()
shape.path = maskPath.cgPath
button.layer.mask = shape
}
Run Code Online (Sandbox Code Playgroud)
我得到一个不正确的结果(按钮的文字不再居中也不覆盖整个宽度):
问题出在哪儿?谢谢
对于警报对话框,我添加了一个UITableView,然后当我尝试对Table View Cell进行操作时,Interface Builders不接受将Table View Cell放在“ on”表视图上,请检查屏幕快照,我应该提到根是UIView,而不是UIViewController:
我想问一个简单的问题,如何在不通过拖放更改其位置的情况下临时将子视图置于前面以查看其元素。我一直面临的问题是我忘记将视图放回那里的位置,这会导致很多麻烦,特别是如果您正在处理具有大量子视图的视图。
对于这样的视图控制器:-
如何创建像所附图片一样的"堆叠"UITextField?

ios ×5
iphone ×3
objective-c ×2
swift ×1
swift3 ×1
uilabel ×1
uitableview ×1
uitextfield ×1
xcode ×1
xib ×1