相关疑难解决方法(0)

如何在UIView下绘制阴影?

我想UIView在Cocoa Touch 的底部边缘画一个阴影.我明白我应该用CGContextSetShadow()它画阴影,但Quartz 2D编程指南有点模糊:

  1. 保存图形状态.
  2. 调用函数CGContextSetShadow,传递适当的值.
  3. 执行要应用阴影的所有绘图.
  4. 恢复图形状态

我在UIView子类中尝试了以下内容:

- (void)drawRect:(CGRect)rect {
    CGContextRef currentContext = UIGraphicsGetCurrentContext();
    CGContextSaveGState(currentContext);
    CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
    CGContextRestoreGState(currentContext);
    [super drawRect: rect];
}
Run Code Online (Sandbox Code Playgroud)

..但这对我不起作用,我有点不知道(a)下一步该去哪里,(b)如果有什么我需要做的让我UIView做这个工作?

iphone cocoa-touch core-graphics objective-c ios

347
推荐指数
9
解决办法
24万
查看次数

UIView底部边界?

对于UIScrollView *toScrollView(这是屏幕的宽度),我想添加一个灰色的底部边框(与iPhone的原生消息应用程序的撰写视图的to-field完全相同).

为了做到这一点,我跟随Cocoa Touch:如何改变UIView的边框颜色和厚度?并使用自定义覆盖顶部边框UINavigationBar并制作了toScrollViewx坐标-1和宽度322,以便左右边框就在屏幕外.

这看起来很好,但它有点像黑客,我想知道是否有更好的方法来做到这一点.

- (void)viewDidLoad {
    [super viewDidLoad];

    // Add UINavigationBar *navigationBar at top.
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]
                                             initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                             target:self action:@selector(cancelAction)];
    UINavigationBar *navigationBar = [[UINavigationBar alloc]
                                      initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
    navigationBar.items = [NSArray arrayWithObject:self.navigationItem];

    // Add UIScrollView *toScrollView below navigationBar.
    UIScrollView *toScrollView = [[UIScrollView alloc]
                                  initWithFrame:CGRectMake(-1.0f, 43.0f, 322.0f, 45.0f)];
    toScrollView.backgroundColor = [UIColor whiteColor];
    toScrollView.layer.borderColor = [UIColor colorWithWhite:0.8f alpha:1.0f].CGColor;
    toScrollView.layer.borderWidth = 1.0f;
    [self.view addSubview:toScrollView];
    [self.view addSubview:navigationBar]; // covers top of toScrollView …
Run Code Online (Sandbox Code Playgroud)

border uiview ios

140
推荐指数
12
解决办法
13万
查看次数

Swift添加子视图并将其删除

我想添加子视图并通过一次点击删除.这是我的代码:

/*添加子视图*/

var testView: UIView = UIView(frame: CGRectMake(0, 0, 320, 568))
testView.backgroundColor = UIColor.blueColor()
testView.alpha = 0.5
testView.tag = 100
super.view.userInteractionEnabled = false
self.view.userInteractionEnabled = true
self.view.addSubview(testView)
Run Code Online (Sandbox Code Playgroud)

/*删除子视图*/

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
    let touch = touches.anyObject() as UITouch
    let point = touch.locationInView(self.view)

    if(testView.tag==100){
        println("Tag 100")
        testView.removeFromSuperview()
    }
    else{
        println("tag not found")
    }

}
Run Code Online (Sandbox Code Playgroud)

但删除它不起作用有人可以帮我吗?谢谢!

uiview ios swift

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

你能给UIStackView边框吗?

我试图UIStackViews在我的ViewController边界中分开5个.我给他们每个人一个IBOutlet,然后打电话给他们viewDidLoad使用该layer财产但无济于事.是不可能以编程方式给出堆栈视图边框?

码:

@IBOutlet weak var stackView1: UIStackView!
@IBOutlet weak var stackView2: UIStackView!
@IBOutlet weak var stackView3: UIStackView!
@IBOutlet weak var stackView4: UIStackView!
@IBOutlet weak var stackView5: UIStackView!

override func viewDidLoad() {
    super.viewDidLoad()

    stackView1.layer.borderWidth = 5
    stackView2.layer.borderWidth = 5
    stackView3.layer.borderWidth = 5
    stackView4.layer.borderWidth = 5
    stackView5.layer.borderWidth = 5   
}
Run Code Online (Sandbox Code Playgroud)

swift uistackview

25
推荐指数
4
解决办法
2万
查看次数

在uilabel周围仅绘制顶部,右侧和底部边框

我试图为uilabel添加边框,但我只想要top, right, and bottom边框.

像这样

           ----------------
                          |
            I am a label  |
                          |
           ----------------
Run Code Online (Sandbox Code Playgroud)

我尝试使用这些代码,但默认情况下会添加所有4个边

    myLabel.layer.borderWidth = 1;
    myLabel.layer.borderColor = [UIColor blackColor];
Run Code Online (Sandbox Code Playgroud)

无论如何,我只能添加3个边,甚至1个或2个边?

谢谢!

uilabel ios

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